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 (
    350511, 355422, 350579, 355405, 350381, 
    350420, 350306, 354322, 350347, 354323, 
    350342, 350368, 355618, 350283, 355620, 
    354738, 350435, 355619, 350504, 355446, 
    350226, 350335, 350442, 350448, 350468, 
    355421, 354526, 350345, 350456, 356842, 
    350385, 350513, 355389, 350282, 350519, 
    355408, 355412, 350417, 358345, 353702, 
    350337, 350412, 358351, 350362, 355406, 
    350462, 353716, 350583, 354523, 350375, 
    358343, 350352, 353726, 350361, 353701, 
    350268, 350377, 350410, 350411, 354743, 
    355429, 355425, 350346, 355418, 358333, 
    350313, 350373, 353712, 353723, 355415, 
    355417, 355438, 354524, 350379, 350380, 
    350388, 355396, 355409, 355439, 355420, 
    350382, 350403, 354525, 358348, 358349, 
    350378, 355395, 353105, 353813, 350589, 
    355411, 358350, 350393, 350311, 355390, 
    358353, 358347, 350384, 350310, 350421
  )

Query time 0.00097

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "430.06"
    },
    "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 (350511,355422,350579,355405,350381,350420,350306,354322,350347,354323,350342,350368,355618,350283,355620,354738,350435,355619,350504,355446,350226,350335,350442,350448,350468,355421,354526,350345,350456,356842,350385,350513,355389,350282,350519,355408,355412,350417,358345,353702,350337,350412,358351,350362,355406,350462,353716,350583,354523,350375,358343,350352,353726,350361,353701,350268,350377,350410,350411,354743,355429,355425,350346,355418,358333,350313,350373,353712,353723,355415,355417,355438,354524,350379,350380,350388,355396,355409,355439,355420,350382,350403,354525,358348,358349,350378,355395,353105,353813,350589,355411,358350,350393,350311,355390,358353,358347,350384,350310,350421))"
        }
      },
      {
        "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.62",
            "eval_cost": "28.32",
            "prefix_cost": "430.06",
            "data_read_per_join": "14K"
          },
          "used_columns": [
            "feature_id",
            "purpose",
            "group_id"
          ]
        }
      }
    ]
  }
}