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 (
    10845, 10844, 10843, 10842, 10841, 10840, 
    10839, 10838, 10837, 10836, 10835, 
    10834, 10833, 10832, 10831, 10830, 
    10829, 10828, 10827, 12642
  ) 
  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.00050

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": 20,
      "filtered": 99.23484039,
      "index_condition": "cscart_product_prices.product_id in (10845,10844,10843,10842,10841,10840,10839,10838,10837,10836,10835,10834,10833,10832,10831,10830,10829,10828,10827,12642)",
      "attached_condition": "cscart_product_prices.lower_limit = 1 and cscart_product_prices.usergroup_id in (0,1)"
    }
  }
}

Result

product_id price
10827 1582.30000000
10828 1582.30000000
10829 3053.16000000
10830 3053.16000000
10831 3053.16000000
10832 3053.16000000
10833 3053.16000000
10834 3053.16000000
10835 3053.16000000
10836 3053.16000000
10837 3053.16000000
10838 3053.16000000
10839 3053.16000000
10840 3877.73000000
10841 3877.73000000
10842 3877.73000000
10843 3877.73000000
10844 3877.73000000
10845 3877.73000000
12642 19593.76000000