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 (
    12616, 12599, 10666, 10664, 10663, 10661, 
    10659, 10658, 10657, 12619, 12620, 
    12593, 12595, 12585, 12587, 12623, 
    13091, 12588, 12590, 12591
  ) 
  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.00061

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 (12616,12599,10666,10664,10663,10661,10659,10658,10657,12619,12620,12593,12595,12585,12587,12623,13091,12588,12590,12591)",
      "attached_condition": "cscart_product_prices.lower_limit = 1 and cscart_product_prices.usergroup_id in (0,1)"
    }
  }
}

Result

product_id price
10657 2671.00000000
10658 2671.00000000
10659 2686.00000000
10661 2262.00000000
10663 2262.00000000
10664 2325.00000000
10666 2325.00000000
12585 209523.67000000
12587 209523.67000000
12588 6750.00000000
12590 67629.15000000
12591 67629.15000000
12593 349146.47000000
12595 131354.16000000
12599 14092.68000000
12616 15852.84000000
12619 131354.16000000
12620 131354.16000000
12623 209523.67000000
13091 6750.00000000