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 (
    234552, 218645, 229045, 230883, 233083, 
    233764, 233916, 235216, 591794, 229091, 
    230596, 232944, 233450, 235701, 233529, 
    233637, 229623, 229679, 230360, 230714
  ) 
  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.00216

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": "9",
      "used_key_parts": ["product_id", "usergroup_id", "lower_limit"],
      "rowid_filter": {
        "range": {
          "key": "lower_limit",
          "used_key_parts": ["lower_limit", "product_id", "usergroup_id"]
        },
        "rows": 40,
        "selectivity_pct": 0.010320317
      },
      "rows": 40,
      "filtered": 100,
      "index_condition": "cscart_product_prices.lower_limit = 1 and cscart_product_prices.product_id in (234552,218645,229045,230883,233083,233764,233916,235216,591794,229091,230596,232944,233450,235701,233529,233637,229623,229679,230360,230714) and cscart_product_prices.usergroup_id in (0,1)"
    }
  }
}

Result

product_id price
218645 28.000000
229045 93.310000
229091 138.420000
229623 358.750000
229679 349.950000
230360 293.840000
230596 73.250000
230714 67.400000
230883 164.250000
232944 136.550000
233083 293.840000
233450 42.600000
233529 79.280000
233637 96.590000
233764 123.570000
233916 213.950000
234552 24.950000
235216 58.530000
235701 30.690000
591794 335.160000