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 (
    955, 956, 957, 958, 959, 960, 961, 962, 
    963, 964, 965, 966, 967, 968, 969, 970, 
    971, 972, 973, 974, 975, 976, 977, 978
  ) 
  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.00125

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": 24,
      "filtered": 4.897957802,
      "index_condition": "cscart_product_prices.product_id in (955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,975,976,977,978)",
      "attached_condition": "cscart_product_prices.lower_limit = 1 and cscart_product_prices.usergroup_id in (0,1)"
    }
  }
}

Result

product_id price
955 0.00000000
956 0.00000000
957 0.00000000
958 0.00000000
959 0.00000000
960 0.00000000
961 0.00000000
962 0.00000000
963 0.00000000
964 0.00000000
965 0.00000000
966 0.00000000
967 0.00000000
968 0.00000000
969 0.00000000
970 0.00000000
971 0.00000000
972 0.00000000
973 0.00000000
974 56000.00000000
975 0.00000000
976 0.00000000
977 0.00000000
978 0.00000000