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 (
    296840, 296925, 296815, 296844, 296874, 
    296922, 296924, 296843, 296902, 296891, 
    296863, 296923, 296850, 296916, 296813, 
    296856, 296854, 296901, 296878, 296871, 
    296867, 296879, 296918, 296870, 296855, 
    296866, 296896, 296812, 296865, 296898, 
    296877, 296920, 296889, 296921, 296926, 
    296849, 296814, 296859, 296873, 296839, 
    296893, 296841, 296919, 296881, 296861, 
    296883, 296838, 296853
  ) 
  AND product_prices.lower_limit = 1 
  AND product_prices.usergroup_id IN (0, 1) 
GROUP BY 
  product_prices.product_id

Query time 0.00154

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "37.55"
    },
    "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": 48,
        "rows_produced_per_join": 4,
        "filtered": "10.00",
        "index_condition": "(`goimagine`.`product_prices`.`product_id` in (296840,296925,296815,296844,296874,296922,296924,296843,296902,296891,296863,296923,296850,296916,296813,296856,296854,296901,296878,296871,296867,296879,296918,296870,296855,296866,296896,296812,296865,296898,296877,296920,296889,296921,296926,296849,296814,296859,296873,296839,296893,296841,296919,296881,296861,296883,296838,296853))",
        "cost_info": {
          "read_cost": "37.07",
          "eval_cost": "0.48",
          "prefix_cost": "37.55",
          "data_read_per_join": "115"
        },
        "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
296813 8.00000000
296814 10.00000000
296815 8.00000000
296838 8.00000000
296839 8.00000000
296840 8.00000000
296841 6.00000000
296843 8.00000000
296844 8.00000000
296849 8.00000000
296850 8.00000000
296853 8.00000000
296854 10.00000000
296855 8.00000000
296856 8.00000000
296859 8.00000000
296861 8.00000000
296863 8.00000000
296865 8.00000000
296866 8.00000000
296867 8.00000000
296870 8.00000000
296871 8.00000000
296873 8.00000000
296874 8.00000000
296877 8.00000000
296878 8.00000000
296879 8.00000000
296881 12.00000000
296883 8.00000000
296889 8.00000000
296891 8.00000000
296893 8.00000000
296896 8.00000000
296898 8.00000000
296901 8.00000000
296902 8.00000000
296916 8.00000000
296918 8.00000000
296919 8.00000000
296920 8.00000000
296921 8.00000000
296922 8.00000000
296923 8.00000000
296924 8.00000000
296925 8.00000000
296926 8.00000000