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 (
    2291, 2103, 2307, 2166, 2208, 2102, 2104, 
    2345, 2143, 2119, 2144, 2362, 2016, 
    2319, 1999, 2019, 2321, 2322, 2018, 
    1928, 2017, 1998, 2020, 2071, 2320
  ) 
  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.00036

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "17.51"
    },
    "grouping_operation": {
      "using_filesort": false,
      "table": {
        "table_name": "cscart_product_prices",
        "access_type": "range",
        "possible_keys": [
          "usergroup",
          "product_id",
          "lower_limit",
          "usergroup_id"
        ],
        "key": "product_id",
        "used_key_parts": [
          "product_id"
        ],
        "key_length": "3",
        "rows_examined_per_scan": 25,
        "rows_produced_per_join": 4,
        "filtered": "19.99",
        "index_condition": "(`cscartdevel`.`cscart_product_prices`.`product_id` in (2291,2103,2307,2166,2208,2102,2104,2345,2143,2119,2144,2362,2016,2319,1999,2019,2321,2322,2018,1928,2017,1998,2020,2071,2320))",
        "cost_info": {
          "read_cost": "17.01",
          "eval_cost": "0.50",
          "prefix_cost": "17.51",
          "data_read_per_join": "119"
        },
        "used_columns": [
          "product_id",
          "price",
          "percentage_discount",
          "lower_limit",
          "usergroup_id"
        ],
        "attached_condition": "((`cscartdevel`.`cscart_product_prices`.`lower_limit` = 1) and (`cscartdevel`.`cscart_product_prices`.`usergroup_id` in (0,1)))"
      }
    }
  }
}

Result

product_id price
1928 40.21000000
1998 42.27000000
1999 44.27000000
2016 35.53000000
2017 40.55000000
2018 40.89000000
2019 40.89000000
2020 41.58000000
2071 44.06000000
2102 11.79000000
2103 12.13000000
2104 11.65000000
2119 11.65000000
2143 117.08000000
2144 101.38000000
2166 31.99000000
2208 100.74000000
2291 13.80000000
2307 10.01000000
2319 33.48000000
2320 39.59000000
2321 32.59000000
2322 60.77000000
2345 12.13000000
2362 12.13000000