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 (
    347, 348, 378, 1340, 684, 377, 448, 1246, 
    1184, 1505, 1331, 1170, 1257, 783, 386, 
    780, 782, 781, 391, 392, 1214, 349, 375
  ) 
  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.00129

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": 23,
      "filtered": 4.693876266,
      "index_condition": "cscart_product_prices.product_id in (347,348,378,1340,684,377,448,1246,1184,1505,1331,1170,1257,783,386,780,782,781,391,392,1214,349,375)",
      "attached_condition": "cscart_product_prices.lower_limit = 1 and cscart_product_prices.usergroup_id in (0,1)"
    }
  }
}

Result

product_id price
347 0.00000000
348 34000.00000000
349 30000.00000000
375 0.00000000
377 0.00000000
378 0.00000000
386 0.00000000
391 0.00000000
392 28000.00000000
448 44000.00000000
684 0.00000000
780 0.00000000
781 0.00000000
782 0.00000000
783 0.00000000
1170 29000.00000000
1184 70000.00000000
1214 74700.00000000
1246 0.00000000
1257 12000.00000000
1331 68000.00000000
1340 57000.00000000
1505 24000.00000000