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 (
    10516, 10517, 10518, 10519, 10520, 10521, 
    10641, 10640, 10639, 10638, 10637, 
    10636, 10635, 10634, 10633, 10632, 
    10631, 10630, 10629, 10628
  ) 
  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.00082

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 (10516,10517,10518,10519,10520,10521,10641,10640,10639,10638,10637,10636,10635,10634,10633,10632,10631,10630,10629,10628)",
      "attached_condition": "cscart_product_prices.lower_limit = 1 and cscart_product_prices.usergroup_id in (0,1)"
    }
  }
}

Result

product_id price
10516 4189.73000000
10517 4189.73000000
10518 3365.16000000
10519 3365.16000000
10520 3365.16000000
10521 3365.16000000
10628 1582.30000000
10629 1582.30000000
10630 1582.30000000
10631 1582.30000000
10632 1582.30000000
10633 1582.30000000
10634 1582.30000000
10635 1582.30000000
10636 1582.30000000
10637 2540.59000000
10638 2540.59000000
10639 2540.59000000
10640 2540.59000000
10641 2540.59000000