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 = 7148 
WHERE 
  cscart_products_categories.product_id IN (
    92401, 92402, 92403, 92404, 92405, 92406, 
    92407, 92557, 87148, 87149, 87150, 
    87151, 87152, 87153, 87286, 92400, 
    92417, 92418, 92419, 92420, 92421, 
    92422, 92423, 87154, 87155, 87156, 
    87157, 87158, 87159, 87287
  ) 
GROUP BY 
  cscart_products_categories.product_id

Query time 0.00152

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "58.18"
    },
    "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": 102,
            "rows_produced_per_join": 102,
            "filtered": "100.00",
            "using_index": true,
            "cost_info": {
              "read_cost": "10.50",
              "eval_cost": "10.20",
              "prefix_cost": "20.70",
              "data_read_per_join": "1K"
            },
            "used_columns": [
              "product_id",
              "category_id",
              "link_type"
            ],
            "attached_condition": "(`nuie_scalesta_net`.`cscart_products_categories`.`product_id` in (92401,92402,92403,92404,92405,92406,92407,92557,87148,87149,87150,87151,87152,87153,87286,92400,92417,92418,92419,92420,92421,92422,92423,87154,87155,87156,87157,87158,87159,87287))"
          }
        },
        {
          "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": 5,
            "filtered": "5.00",
            "cost_info": {
              "read_cost": "25.50",
              "eval_cost": "0.51",
              "prefix_cost": "56.40",
              "data_read_per_join": "13K"
            },
            "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": 5,
            "filtered": "100.00",
            "cost_info": {
              "read_cost": "1.28",
              "eval_cost": "0.51",
              "prefix_cost": "58.18",
              "data_read_per_join": "81"
            },
            "used_columns": [
              "product_id",
              "category_id",
              "position"
            ]
          }
        }
      ]
    }
  }
}

Result

product_id category_ids position
87148 7241,7309,7346,7208M
87149 7241,7309,7346,7208M
87150 7241,7309,7346,7208M
87151 7241,7309,7346,7208M
87152 7241,7309,7346,7208M
87153 7241,7309,7346,7208M
87154 7241,7309,7346,7208M
87155 7241,7309,7346,7208M
87156 7241,7309,7346,7208M
87157 7241,7309,7346,7208M
87158 7241,7309,7346,7208M
87159 7241,7309,7346,7208M
87286 7241,7309,7346,7208M
87287 7241,7309,7346,7208M
92400 7158,7159,7148M 0
92401 7158,7159,7148M 0
92402 7158,7159,7148M 0
92403 7158,7159,7148M 0
92404 7158,7159,7148M 0
92405 7158,7159,7148M 0
92406 7158,7159,7148M 0
92407 7158,7159,7148M 0
92417 7158,7159,7148M 0
92418 7158,7159,7148M 0
92419 7158,7159,7148M 0
92420 7158,7159,7148M 0
92421 7158,7159,7148M 0
92422 7158,7159,7148M 0
92423 7348,7148M 0
92557 7301,7151M