SELECT 
  cscart_ult_product_prices.product_id, 
  MIN(
    IF(
      cscart_ult_product_prices.percentage_discount = 0, 
      cscart_ult_product_prices.price, 
      cscart_ult_product_prices.price - (
        cscart_ult_product_prices.price * cscart_ult_product_prices.percentage_discount
      )/ 100
    )
  ) AS price 
FROM 
  cscart_ult_product_prices 
WHERE 
  cscart_ult_product_prices.product_id IN (
    4040, 4041, 4117, 4118, 4119, 4120, 4121, 
    4122, 4123, 4171, 4172, 4173, 4174, 
    4175, 4176, 50, 51, 52, 53, 54, 55, 56, 
    97, 98, 99, 100, 101, 102, 103, 182, 183, 
    184, 185, 186, 187, 188, 189, 190, 191, 
    192, 193, 194, 195, 226, 227, 228, 229, 
    230, 231, 232, 264, 265, 266, 267, 268, 
    269, 270, 318, 319, 320, 321, 322, 323, 
    3961, 3962, 3963, 3964, 3965, 3966, 
    3967, 4006, 4007, 4008, 4009, 4010, 
    4011, 4012, 4066, 4067, 4068, 4069, 
    4070, 4071, 4072, 4073, 4074, 4075, 
    4076, 4077, 4078, 4079, 4110, 4111, 
    4112, 4113, 4114
  ) 
  AND cscart_ult_product_prices.lower_limit = 1 
  AND cscart_ult_product_prices.company_id = 1 
  AND cscart_ult_product_prices.usergroup_id IN (0, 0, 1) 
GROUP BY 
  cscart_ult_product_prices.product_id

Query time 0.00039

JSON explain

{
  "query_block": {
    "select_id": 1,
    "message": "no matching row in const table"
  }
}