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 (
    12520, 12497, 12505, 12502, 12504, 10847, 
    13152, 10846, 10845, 10844, 10843, 
    10842, 10841, 10840, 10839, 10838
  ) 
  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.00027

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": 16,
      "filtered": 99.23484039,
      "index_condition": "cscart_product_prices.product_id in (12520,12497,12505,12502,12504,10847,13152,10846,10845,10844,10843,10842,10841,10840,10839,10838)",
      "attached_condition": "cscart_product_prices.lower_limit = 1 and cscart_product_prices.usergroup_id in (0,1)"
    }
  }
}

Result

product_id price
10838 3053.16000000
10839 3053.16000000
10840 3877.73000000
10841 3877.73000000
10842 3877.73000000
10843 3877.73000000
10844 3877.73000000
10845 3877.73000000
10846 3877.73000000
10847 3877.73000000
12497 0.00000000
12502 0.00000000
12504 0.00000000
12505 0.00000000
12520 0.00000000
13152 3877.73000000