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 (
    296901, 296878, 296871, 296867, 296879, 
    296918, 296870, 296855, 296866, 296896, 
    296812, 296824, 296915, 296865, 296898, 
    296877, 296907, 296920, 296889, 296921, 
    296926, 296849, 296814, 296859
  ) 
  AND product_prices.lower_limit = 1 
  AND product_prices.usergroup_id IN (0, 1) 
GROUP BY 
  product_prices.product_id

Query time 0.00111

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "25.25"
    },
    "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 (296901,296878,296871,296867,296879,296918,296870,296855,296866,296896,296812,296824,296915,296865,296898,296877,296907,296920,296889,296921,296926,296849,296814,296859))",
        "cost_info": {
          "read_cost": "25.01",
          "eval_cost": "0.24",
          "prefix_cost": "25.25",
          "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
296812 8.00000000
296814 10.00000000
296824 5.00000000
296849 8.00000000
296855 8.00000000
296859 8.00000000
296865 8.00000000
296866 8.00000000
296867 8.00000000
296870 8.00000000
296871 8.00000000
296877 8.00000000
296878 8.00000000
296879 8.00000000
296889 8.00000000
296896 8.00000000
296898 8.00000000
296901 8.00000000
296907 20.00000000
296915 10.00000000
296918 8.00000000
296920 8.00000000
296921 8.00000000
296926 8.00000000