SELECT 
  cscart_products_categories.product_id, 
  GROUP_CONCAT(
    IF(
      cscart_products_categories.link_type = "M", 
      CONCAT(
        cscart_products_categories.category_id, 
        "M"
      ), 
      cscart_products_categories.category_id
    )
  ) AS category_ids, 
  product_position_source.position AS position 
FROM 
  cscart_products_categories 
  INNER JOIN cscart_categories ON cscart_categories.category_id = cscart_products_categories.category_id 
  AND cscart_categories.storefront_id IN (0, 1) 
  AND (
    cscart_categories.usergroup_ids = '' 
    OR FIND_IN_SET(
      0, cscart_categories.usergroup_ids
    ) 
    OR FIND_IN_SET(
      1, cscart_categories.usergroup_ids
    )
  ) 
  AND cscart_categories.status IN ('A', 'H') 
  LEFT JOIN cscart_products_categories AS product_position_source ON cscart_products_categories.product_id = product_position_source.product_id 
  AND product_position_source.category_id = 7211 
WHERE 
  cscart_products_categories.product_id IN (
    97673, 97674, 97675, 97676, 97677, 97678, 
    97679, 97680, 97681, 97682, 97683, 
    97684, 97685, 97686, 97687, 97688, 
    97689, 97690, 97691, 97692, 97693, 
    97694, 97695, 97696, 97697, 97699, 
    97700, 97701, 97702, 97705, 97706, 
    97707, 97708, 97709, 97710, 97711, 
    97712, 98054, 98055, 98056, 98057, 
    98058, 98059, 98060, 98061, 98062, 
    98063, 98064
  ) 
GROUP BY 
  cscart_products_categories.product_id

Query time 0.00190

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "91.69"
    },
    "grouping_operation": {
      "using_filesort": false,
      "nested_loop": [
        {
          "table": {
            "table_name": "cscart_products_categories",
            "access_type": "range",
            "possible_keys": [
              "PRIMARY",
              "link_type",
              "pt"
            ],
            "key": "pt",
            "used_key_parts": [
              "product_id"
            ],
            "key_length": "3",
            "rows_examined_per_scan": 161,
            "rows_produced_per_join": 161,
            "filtered": "100.00",
            "using_index": true,
            "cost_info": {
              "read_cost": "16.42",
              "eval_cost": "16.10",
              "prefix_cost": "32.52",
              "data_read_per_join": "2K"
            },
            "used_columns": [
              "product_id",
              "category_id",
              "link_type"
            ],
            "attached_condition": "(`nuie_scalesta_net`.`cscart_products_categories`.`product_id` in (97673,97674,97675,97676,97677,97678,97679,97680,97681,97682,97683,97684,97685,97686,97687,97688,97689,97690,97691,97692,97693,97694,97695,97696,97697,97699,97700,97701,97702,97705,97706,97707,97708,97709,97710,97711,97712,98054,98055,98056,98057,98058,98059,98060,98061,98062,98063,98064))"
          }
        },
        {
          "table": {
            "table_name": "cscart_categories",
            "access_type": "eq_ref",
            "possible_keys": [
              "PRIMARY",
              "c_status",
              "p_category_id"
            ],
            "key": "PRIMARY",
            "used_key_parts": [
              "category_id"
            ],
            "key_length": "3",
            "ref": [
              "nuie_scalesta_net.cscart_products_categories.category_id"
            ],
            "rows_examined_per_scan": 1,
            "rows_produced_per_join": 8,
            "filtered": "5.00",
            "cost_info": {
              "read_cost": "40.25",
              "eval_cost": "0.81",
              "prefix_cost": "88.87",
              "data_read_per_join": "21K"
            },
            "used_columns": [
              "category_id",
              "usergroup_ids",
              "status",
              "storefront_id"
            ],
            "attached_condition": "((`nuie_scalesta_net`.`cscart_categories`.`storefront_id` in (0,1)) and ((`nuie_scalesta_net`.`cscart_categories`.`usergroup_ids` = '') or (0 <> find_in_set(0,`nuie_scalesta_net`.`cscart_categories`.`usergroup_ids`)) or (0 <> find_in_set(1,`nuie_scalesta_net`.`cscart_categories`.`usergroup_ids`))) and (`nuie_scalesta_net`.`cscart_categories`.`status` in ('A','H')))"
          }
        },
        {
          "table": {
            "table_name": "product_position_source",
            "access_type": "eq_ref",
            "possible_keys": [
              "PRIMARY",
              "pt"
            ],
            "key": "PRIMARY",
            "used_key_parts": [
              "category_id",
              "product_id"
            ],
            "key_length": "6",
            "ref": [
              "const",
              "nuie_scalesta_net.cscart_products_categories.product_id"
            ],
            "rows_examined_per_scan": 1,
            "rows_produced_per_join": 8,
            "filtered": "100.00",
            "cost_info": {
              "read_cost": "2.01",
              "eval_cost": "0.81",
              "prefix_cost": "91.69",
              "data_read_per_join": "128"
            },
            "used_columns": [
              "product_id",
              "category_id",
              "position"
            ]
          }
        }
      ]
    }
  }
}

Result

product_id category_ids position
97673 7320,7260M
97674 7320,7260M
97675 7320,7260M
97676 7320,7260M
97677 7320,7260M
97678 7320,7260M
97679 7320,7260M
97680 7320,7260M
97681 7320,7260M
97682 7241,7309,7346,7208M
97683 7241,7309,7346,7208M
97684 7241,7309,7346,7208M
97685 7241,7309,7346,7208M
97686 7241,7309,7346,7208M
97687 7241,7309,7346,7208M
97688 7241,7309,7346,7208M
97689 7241,7309,7346,7208M
97690 7241,7309,7346,7208M
97691 7241,7309,7346,7208M
97692 7241,7309,7346,7208M
97693 7241,7309,7346,7208M
97694 7241,7309,7346,7208M
97695 7241,7309,7346,7208M
97696 7241,7309,7346,7208M
97697 7320,7260M
97699 7320,7260M
97700 7320,7260M
97701 7320,7260M
97702 7320,7260M
97705 7345,7347,7259M
97706 7320,7260M
97707 7241,7309,7346,7208M
97708 7241,7309,7346,7208M
97709 7241,7309,7346,7208M
97710 7241,7309,7346,7208M
97711 7241,7309,7346,7208M
97712 7241,7309,7346,7208M
98054 7241,7309,7346,7208M
98055 7241,7309,7346,7208M
98056 7241,7309,7346,7208M
98057 7241,7309,7346,7208M
98058 7241,7309,7346,7208M
98059 7241,7309,7346,7208M
98060 7241,7309,7346,7208M
98061 7241,7309,7346,7208M
98062 7241,7309,7346,7208M
98063 7241,7309,7346,7208M
98064 7241,7309,7346,7208M