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 (
    373, 374, 375, 376, 377, 378, 379, 380, 
    381, 382, 383, 384, 385, 386, 387, 388, 
    389, 390, 391, 392, 393, 394, 395, 396
  ) 
  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.00109

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 (373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396)",
      "attached_condition": "cscart_product_prices.lower_limit = 1 and cscart_product_prices.usergroup_id in (0,1)"
    }
  }
}

Result

product_id price
373 35000.00000000
374 37000.00000000
375 0.00000000
376 0.00000000
377 0.00000000
378 0.00000000
379 0.00000000
380 0.00000000
381 33000.00000000
382 25500.00000000
383 30000.00000000
384 0.00000000
385 0.00000000
386 0.00000000
387 0.00000000
388 24000.00000000
389 34000.00000000
390 7000.00000000
391 0.00000000
392 28000.00000000
393 31000.00000000
394 0.00000000
395 480000.00000000
396 410000.00000000