SELECT 
  jmj_product_prices.product_id, 
  COALESCE(
    jmj_master_products_storefront_min_price.price, 
    MIN(
      IF(
        jmj_product_prices.percentage_discount = 0, 
        jmj_product_prices.price, 
        jmj_product_prices.price - (
          jmj_product_prices.price * jmj_product_prices.percentage_discount
        )/ 100
      )
    )
  ) AS price 
FROM 
  jmj_product_prices 
  LEFT JOIN jmj_master_products_storefront_min_price ON jmj_master_products_storefront_min_price.product_id = jmj_product_prices.product_id 
  AND jmj_master_products_storefront_min_price.storefront_id = 1 
WHERE 
  jmj_product_prices.product_id IN (
    938, 939, 942, 943, 944, 945, 946, 947, 
    948, 949, 951, 952, 953, 954, 956, 958, 
    960, 962, 963, 965, 967, 968, 969, 970, 
    972, 973, 974, 975, 976, 977, 978, 979, 
    980, 981, 984, 985, 986, 987, 988, 989, 
    990, 991, 992, 993, 994, 995, 996, 997
  ) 
  AND jmj_product_prices.lower_limit = 1 
  AND jmj_product_prices.usergroup_id IN (0, 1) 
GROUP BY 
  jmj_product_prices.product_id

Query time 0.01102

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "213.95"
    },
    "grouping_operation": {
      "using_temporary_table": true,
      "using_filesort": true,
      "cost_info": {
        "sort_cost": "19.94"
      },
      "nested_loop": [
        {
          "table": {
            "table_name": "jmj_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": 100,
            "rows_produced_per_join": 19,
            "filtered": "19.94",
            "index_condition": "(`jmj_test`.`jmj_product_prices`.`product_id` in (938,939,942,943,944,945,946,947,948,949,951,952,953,954,956,958,960,962,963,965,967,968,969,970,972,973,974,975,976,977,978,979,980,981,984,985,986,987,988,989,990,991,992,993,994,995,996,997))",
            "cost_info": {
              "read_cost": "184.02",
              "eval_cost": "3.99",
              "prefix_cost": "188.01",
              "data_read_per_join": "478"
            },
            "used_columns": [
              "product_id",
              "price",
              "percentage_discount",
              "lower_limit",
              "usergroup_id"
            ],
            "attached_condition": "((`jmj_test`.`jmj_product_prices`.`lower_limit` = 1) and (`jmj_test`.`jmj_product_prices`.`usergroup_id` in (0,1)))"
          }
        },
        {
          "table": {
            "table_name": "jmj_master_products_storefront_min_price",
            "access_type": "ALL",
            "possible_keys": [
              "PRIMARY"
            ],
            "rows_examined_per_scan": 1,
            "rows_produced_per_join": 19,
            "filtered": "100.00",
            "using_join_buffer": "Block Nested Loop",
            "cost_info": {
              "read_cost": "2.01",
              "eval_cost": "3.99",
              "prefix_cost": "194.00",
              "data_read_per_join": "319"
            },
            "used_columns": [
              "storefront_id",
              "product_id",
              "price"
            ],
            "attached_condition": "<if>(is_not_null_compl(jmj_master_products_storefront_min_price), ((`jmj_test`.`jmj_master_products_storefront_min_price`.`storefront_id` = 1) and (`jmj_test`.`jmj_master_products_storefront_min_price`.`product_id` = `jmj_test`.`jmj_product_prices`.`product_id`)), true)"
          }
        }
      ]
    }
  }
}

Result

product_id price
938 549.00000000
939 549.00000000
942 549.00000000
943 549.00000000
944 549.00000000
945 549.00000000
946 549.00000000
947 598.00000000
948 598.00000000
949 598.00000000
951 598.00000000
952 598.00000000
953 598.00000000
954 549.00000000
956 549.00000000
958 598.00000000
960 549.00000000
962 498.00000000
963 598.00000000
965 598.00000000
967 598.00000000
968 549.00000000
969 598.00000000
970 598.00000000
972 598.00000000
973 598.00000000
974 598.00000000
975 598.00000000
976 598.00000000
977 598.00000000
978 598.00000000
979 598.00000000
980 598.00000000
981 549.00000000
984 549.00000000
985 549.00000000
986 549.00000000
987 549.00000000
988 549.00000000
989 549.00000000
990 549.00000000
991 549.00000000
992 549.00000000
993 549.00000000
994 549.00000000
995 549.00000000
996 549.00000000
997 549.00000000