SELECT 
  cscart_product_prices.product_id, 
  MIN(
    IF(
      cscart_product_prices.percentage_discount = 0, 
      cscart_product_prices.price, 
      cscart_product_prices.price - (
        cscart_product_prices.price * cscart_product_prices.percentage_discount
      )/ 100
    )
  ) AS price 
FROM 
  cscart_product_prices 
WHERE 
  cscart_product_prices.product_id IN (
    4024, 4020, 4028, 4037, 4019, 4029, 4036, 
    4025, 4042, 4026, 4045, 4038, 4046, 
    4040, 4039, 4022, 4021, 4041
  ) 
  AND cscart_product_prices.lower_limit = 1 
  AND cscart_product_prices.usergroup_id IN (0, 1) 
GROUP BY 
  cscart_product_prices.product_id

Query time 0.00045

JSON explain

{
  "query_block": {
    "select_id": 1,
    "table": {
      "table_name": "cscart_product_prices",
      "access_type": "range",
      "possible_keys": ["usergroup", "product_id", "lower_limit", "usergroup_id"],
      "key": "product_id",
      "key_length": "3",
      "used_key_parts": ["product_id"],
      "rows": 36,
      "filtered": 100,
      "index_condition": "cscart_product_prices.product_id in (4024,4020,4028,4037,4019,4029,4036,4025,4042,4026,4045,4038,4046,4040,4039,4022,4021,4041)",
      "attached_condition": "cscart_product_prices.lower_limit = 1 and cscart_product_prices.usergroup_id in (0,1)"
    }
  }
}

Result

product_id price
4019 5.540000
4020 5.400000
4021 10.800000
4022 12.470000
4024 30.860000
4025 6.160000
4026 40.360000
4028 36.180000
4029 23.400000
4036 42.640000
4037 44.190000
4038 45.500000
4039 48.600000
4040 48.600000
4041 6.480000
4042 5.760000
4045 30.780000
4046 20.040000