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 (
    20221, 20222, 20223, 21286, 21287, 21288, 
    21289, 21290, 21291, 22177, 21514, 
    22151, 21292, 21293, 21342, 21294, 
    21295, 21343, 21296, 21297, 21344, 
    22152, 22153, 21345, 21346, 21347, 
    21348, 22154, 22155, 22156, 22159, 
    21349, 21350, 22157, 22158, 21552, 
    21553, 21351, 21488, 21352, 21353, 
    21354, 21298, 21355, 21299, 21300, 
    21301, 21302, 22160, 21303, 22175, 
    21356, 21357, 22161, 21304, 21305, 
    21306, 21307
  ) 
  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.00029

JSON explain

{
  "query_block": {
    "select_id": 1,
    "table": {
      "message": "Impossible WHERE noticed after reading const tables"
    }
  }
}