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 (
    397, 398, 399, 400, 401, 402, 403, 404, 
    405, 406, 407, 408, 409, 410, 411, 412, 
    413, 414, 415, 416, 417, 418, 419, 420
  ) 
  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.00116

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": 24,
      "filtered": 4.897957802,
      "index_condition": "cscart_product_prices.product_id in (397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420)",
      "attached_condition": "cscart_product_prices.lower_limit = 1 and cscart_product_prices.usergroup_id in (0,1)"
    }
  }
}

Result

product_id price
397 0.00000000
398 0.00000000
399 0.00000000
400 0.00000000
401 0.00000000
402 0.00000000
403 23000.00000000
404 37000.00000000
405 0.00000000
406 0.00000000
407 0.00000000
408 54000.00000000
409 36000.00000000
410 0.00000000
411 0.00000000
412 0.00000000
413 23500.00000000
414 38000.00000000
415 175000.00000000
416 65000.00000000
417 0.00000000
418 0.00000000
419 0.00000000
420 42000.00000000