SELECT 
  product_prices.product_id, 
  MIN(
    IF(
      product_prices.percentage_discount = 0, 
      product_prices.price, 
      product_prices.price - (
        product_prices.price * product_prices.percentage_discount
      )/ 100
    )
  ) AS price 
FROM 
  product_prices 
WHERE 
  product_prices.product_id IN (
    296884, 296840, 296925, 296885, 296815, 
    296844, 296874, 296922, 296903, 296924, 
    296930, 296843, 296902, 296910, 296891, 
    296863, 296923, 296850, 296887, 296816, 
    296916, 296813, 296856, 296854
  ) 
  AND product_prices.lower_limit = 1 
  AND product_prices.usergroup_id IN (0, 1) 
GROUP BY 
  product_prices.product_id

Query time 0.00550

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "21.22"
    },
    "grouping_operation": {
      "using_filesort": false,
      "table": {
        "table_name": "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": 24,
        "rows_produced_per_join": 2,
        "filtered": "10.00",
        "index_condition": "(`goimagine`.`product_prices`.`product_id` in (296884,296840,296925,296885,296815,296844,296874,296922,296903,296924,296930,296843,296902,296910,296891,296863,296923,296850,296887,296816,296916,296813,296856,296854))",
        "cost_info": {
          "read_cost": "20.98",
          "eval_cost": "0.24",
          "prefix_cost": "21.22",
          "data_read_per_join": "57"
        },
        "used_columns": [
          "id",
          "product_id",
          "price",
          "percentage_discount",
          "lower_limit",
          "usergroup_id"
        ],
        "attached_condition": "((`goimagine`.`product_prices`.`lower_limit` = 1) and (`goimagine`.`product_prices`.`usergroup_id` in (0,1)))"
      }
    }
  }
}

Result

product_id price
296813 8.00000000
296815 8.00000000
296816 10.00000000
296840 8.00000000
296843 8.00000000
296844 8.00000000
296850 8.00000000
296854 10.00000000
296856 8.00000000
296863 8.00000000
296874 8.00000000
296884 10.00000000
296885 20.00000000
296887 30.00000000
296891 8.00000000
296902 8.00000000
296903 20.00000000
296910 12.00000000
296916 8.00000000
296922 8.00000000
296923 8.00000000
296924 8.00000000
296925 8.00000000
296930 8.00000000