SELECT 
  f.feature_id, 
  f.purpose, 
  p.product_id, 
  p.parent_product_id, 
  g.id, 
  g.code 
FROM 
  cscart_product_variation_group_features AS f 
  INNER JOIN cscart_product_variation_groups AS g ON f.group_id = g.id 
  INNER JOIN cscart_product_variation_group_products AS p ON f.group_id = p.group_id 
WHERE 
  p.product_id IN (
    339776, 339474, 339552, 339649, 339743, 
    339756, 339647, 339665, 339470, 339773, 
    339577, 339848, 339703, 339749, 339669, 
    339455, 339666, 339789, 339651, 339565, 
    339544, 339626, 339670, 339543, 339646, 
    339824, 339833, 339834, 339575, 339784, 
    339698, 339830, 339631, 339628, 339662, 
    339767, 339557, 339567, 339549, 339595, 
    339823, 339673, 339853, 339658, 339717, 
    339763, 339852, 339542, 339818, 339653, 
    339487, 339822, 339472, 339613, 339682, 
    339480, 339555, 339639, 339560, 339579, 
    339680, 339559, 339788, 339850, 339854, 
    339815, 339772, 339561, 339785, 339766, 
    339475, 339688, 339566, 339661, 339558, 
    339819, 339585, 339837, 339563, 339640, 
    339568, 339790, 339578, 339634, 339598, 
    339629, 339672, 339546, 339844, 339641, 
    339832, 339840, 339624, 339627, 339687, 
    339842, 339612, 339827, 339642, 339800
  )

Query time 0.00143

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "430.18"
    },
    "nested_loop": [
      {
        "table": {
          "table_name": "p",
          "access_type": "range",
          "possible_keys": [
            "PRIMARY",
            "idx_group_id"
          ],
          "key": "PRIMARY",
          "used_key_parts": [
            "product_id"
          ],
          "key_length": "3",
          "rows_examined_per_scan": 100,
          "rows_produced_per_join": 100,
          "filtered": "100.00",
          "cost_info": {
            "read_cost": "120.12",
            "eval_cost": "20.00",
            "prefix_cost": "140.12",
            "data_read_per_join": "1K"
          },
          "used_columns": [
            "product_id",
            "parent_product_id",
            "group_id"
          ],
          "attached_condition": "(`webmarco`.`p`.`product_id` in (339776,339474,339552,339649,339743,339756,339647,339665,339470,339773,339577,339848,339703,339749,339669,339455,339666,339789,339651,339565,339544,339626,339670,339543,339646,339824,339833,339834,339575,339784,339698,339830,339631,339628,339662,339767,339557,339567,339549,339595,339823,339673,339853,339658,339717,339763,339852,339542,339818,339653,339487,339822,339472,339613,339682,339480,339555,339639,339560,339579,339680,339559,339788,339850,339854,339815,339772,339561,339785,339766,339475,339688,339566,339661,339558,339819,339585,339837,339563,339640,339568,339790,339578,339634,339598,339629,339672,339546,339844,339641,339832,339840,339624,339627,339687,339842,339612,339827,339642,339800))"
        }
      },
      {
        "table": {
          "table_name": "g",
          "access_type": "eq_ref",
          "possible_keys": [
            "PRIMARY"
          ],
          "key": "PRIMARY",
          "used_key_parts": [
            "id"
          ],
          "key_length": "3",
          "ref": [
            "webmarco.p.group_id"
          ],
          "rows_examined_per_scan": 1,
          "rows_produced_per_join": 100,
          "filtered": "100.00",
          "cost_info": {
            "read_cost": "100.00",
            "eval_cost": "20.00",
            "prefix_cost": "260.12",
            "data_read_per_join": "39K"
          },
          "used_columns": [
            "id",
            "code"
          ]
        }
      },
      {
        "table": {
          "table_name": "f",
          "access_type": "ref",
          "possible_keys": [
            "idx_group_id"
          ],
          "key": "idx_group_id",
          "used_key_parts": [
            "group_id"
          ],
          "key_length": "3",
          "ref": [
            "webmarco.p.group_id"
          ],
          "rows_examined_per_scan": 1,
          "rows_produced_per_join": 141,
          "filtered": "100.00",
          "cost_info": {
            "read_cost": "141.72",
            "eval_cost": "28.34",
            "prefix_cost": "430.18",
            "data_read_per_join": "14K"
          },
          "used_columns": [
            "feature_id",
            "purpose",
            "group_id"
          ]
        }
      }
    ]
  }
}