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 (
    47865, 47891, 47890, 47892, 47867, 47888, 
    47887, 47868, 48497, 47862, 47858, 
    47889, 47856, 47861, 47860, 47859, 
    47857, 47863, 47866, 48499, 48498, 
    48494, 48496, 48495
  ) 
  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.00172

JSON explain

{
  "query_block": {
    "select_id": 1,
    "nested_loop": [
      {
        "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": 24,
          "filtered": 99.9960556,
          "index_condition": "cscart_product_prices.product_id in (47865,47891,47890,47892,47867,47888,47887,47868,48497,47862,47858,47889,47856,47861,47860,47859,47857,47863,47866,48499,48498,48494,48496,48495)",
          "attached_condition": "cscart_product_prices.lower_limit = 1 and cscart_product_prices.usergroup_id in (0,1)"
        }
      }
    ]
  }
}

Result

product_id price
47856 115000.0000
47857 100000.0000
47858 85000.0000
47859 75000.0000
47860 120000.0000
47861 45000.0000
47862 180000.0000
47863 110000.0000
47865 95000.0000
47866 85000.0000
47867 65000.0000
47868 70000.0000
47887 180000.0000
47888 110000.0000
47889 90000.0000
47890 85000.0000
47891 120000.0000
47892 75000.0000
48494 200000.0000
48495 120000.0000
48496 135000.0000
48497 90000.0000
48498 80000.0000
48499 90000.0000