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 (
    302, 1013, 1045, 1019, 1032, 1044, 996, 
    1056, 1057, 1012, 1014, 1029, 1034, 
    1042, 1026, 1038
  ) 
  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.00107

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": 2.14621067,
      "index_condition": "cscart_product_prices.product_id in (302,1013,1045,1019,1032,1044,996,1056,1057,1012,1014,1029,1034,1042,1026,1038)",
      "attached_condition": "cscart_product_prices.lower_limit = 1 and cscart_product_prices.usergroup_id in (0,1)"
    }
  }
}

Result

product_id price
302 0.3100000000000000
996 0.3100000000000000
1012 0.3100000000000000
1013 0.3100000000000000
1014 0.3100000000000000
1019 0.3100000000000000
1026 0.3100000000000000
1029 0.3100000000000000
1032 0.3100000000000000
1034 0.3100000000000000
1038 0.3100000000000000
1042 0.3100000000000000
1044 0.3100000000000000
1045 0.3100000000000000
1056 0.3100000000000000
1057 0.3100000000000000