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 (
    296873, 296839, 296831, 296893, 296928, 
    296832, 296841, 296919, 296881, 296861, 
    296883, 296838, 296848, 296853, 296899, 
    296846, 296833, 296858, 296886, 296894, 
    296835, 296869, 296892, 296837, 296845, 
    296895, 296864, 296917, 296851, 296862, 
    296872, 296882, 296900, 296875, 296847, 
    296876, 296906, 296860, 296868, 296857, 
    296842
  ) 
  AND product_prices.lower_limit = 1 
  AND product_prices.usergroup_id IN (0, 1) 
GROUP BY 
  product_prices.product_id

Query time 0.00144

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "34.27"
    },
    "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": 41,
        "rows_produced_per_join": 4,
        "filtered": "10.00",
        "index_condition": "(`goimagine`.`product_prices`.`product_id` in (296873,296839,296831,296893,296928,296832,296841,296919,296881,296861,296883,296838,296848,296853,296899,296846,296833,296858,296886,296894,296835,296869,296892,296837,296845,296895,296864,296917,296851,296862,296872,296882,296900,296875,296847,296876,296906,296860,296868,296857,296842))",
        "cost_info": {
          "read_cost": "33.86",
          "eval_cost": "0.41",
          "prefix_cost": "34.27",
          "data_read_per_join": "98"
        },
        "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
296831 15.00000000
296832 15.00000000
296833 20.00000000
296835 18.00000000
296837 7.00000000
296838 8.00000000
296839 8.00000000
296841 6.00000000
296842 10.00000000
296845 14.00000000
296846 12.00000000
296847 7.00000000
296848 7.00000000
296851 8.00000000
296853 8.00000000
296857 8.00000000
296858 8.00000000
296860 8.00000000
296861 8.00000000
296862 8.00000000
296864 8.00000000
296868 8.00000000
296869 8.00000000
296872 30.00000000
296873 8.00000000
296875 8.00000000
296876 8.00000000
296881 12.00000000
296882 8.00000000
296883 8.00000000
296886 7.00000000
296892 8.00000000
296893 8.00000000
296894 8.00000000
296895 8.00000000
296899 8.00000000
296900 8.00000000
296906 8.00000000
296917 8.00000000
296919 8.00000000
296928 50.00000000