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 (
    1958, 1959, 2, 3, 4, 5, 6, 7, 8, 9, 10, 1, 
    1957, 1892, 1956, 1955, 1954, 1953, 
    1870, 1948, 1745, 1952, 1951, 1950
  ) 
  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.00122

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": 44,
      "filtered": 11.63265038,
      "index_condition": "cscart_product_prices.product_id in (1958,1959,2,3,4,5,6,7,8,9,10,1,1957,1892,1956,1955,1954,1953,1870,1948,1745,1952,1951,1950)",
      "attached_condition": "cscart_product_prices.lower_limit = 1 and cscart_product_prices.usergroup_id in (0,1)"
    }
  }
}

Result

product_id price
1 99000.00000000
2 99000.00000000
3 99000.00000000
4 299000.00000000
5 295000.00000000
6 385000.00000000
7 352000.00000000
8 295000.00000000
9 79000.00000000
10 99500.00000000
1745 0.00000000
1870 70000.00000000
1892 145000.00000000
1948 50000.00000000
1950 270000.00000000
1951 135000.00000000
1952 165000.00000000
1953 17000.00000000
1954 17000.00000000
1955 95000.00000000
1956 40000.00000000
1957 70000.00000000
1958 0.00000000
1959 95000.00000000