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 (
    43817, 23152, 5544, 47921, 41339, 387, 
    23267, 455, 38137, 734, 4515, 4351, 
    38136, 2149, 38138, 48322
  ) 
  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.15345

JSON explain

{
  "query_block": {
    "select_id": 1,
    "filesort": {
      "sort_key": "cscart_product_prices.product_id",
      "temporary_table": {
        "nested_loop": [
          {
            "table": {
              "table_name": "cscart_product_prices",
              "access_type": "ref",
              "possible_keys": [
                "usergroup",
                "product_id",
                "lower_limit",
                "usergroup_id"
              ],
              "key": "lower_limit",
              "key_length": "3",
              "used_key_parts": ["lower_limit"],
              "ref": ["const"],
              "rows": 25327,
              "filtered": 2.020201206,
              "attached_condition": "cscart_product_prices.lower_limit <=> 1 and cscart_product_prices.product_id in (43817,23152,5544,47921,41339,387,23267,455,38137,734,4515,4351,38136,2149,38138,48322) and cscart_product_prices.usergroup_id in (0,1)"
            }
          }
        ]
      }
    }
  }
}

Result

product_id price
387 50000.0000
455 3328000.0000
734 340000.0000
2149 200000.0000
4351 250000.0000
4515 50000.0000
5544 75000.0000
23152 199000.0000
23267 231000.0000
38136 270000.0000
38137 240000.0000
38138 140000.0000
41339 310000.0000
43817 439000.0000
47921 285000.0000
48322 270000.0000