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 = 7184 
WHERE 
  cscart_products_categories.product_id IN (
    85600, 90310, 90755, 86893, 85553, 85556, 
    85557, 85559, 85589, 85593, 85601, 
    85602, 85560, 85587, 85588, 85604, 
    85562, 85542, 85603, 92475, 85547, 
    85569, 91876, 85545, 85868, 85870, 
    85871, 85568, 85544, 84237
  ) 
GROUP BY 
  cscart_products_categories.product_id

Query time 0.00075

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "53.64"
    },
    "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": 94,
            "rows_produced_per_join": 94,
            "filtered": "100.00",
            "using_index": true,
            "cost_info": {
              "read_cost": "9.69",
              "eval_cost": "9.40",
              "prefix_cost": "19.09",
              "data_read_per_join": "1K"
            },
            "used_columns": [
              "product_id",
              "category_id",
              "link_type"
            ],
            "attached_condition": "(`nuie_scalesta_net`.`cscart_products_categories`.`product_id` in (85600,90310,90755,86893,85553,85556,85557,85559,85589,85593,85601,85602,85560,85587,85588,85604,85562,85542,85603,92475,85547,85569,91876,85545,85868,85870,85871,85568,85544,84237))"
          }
        },
        {
          "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": 4,
            "filtered": "5.00",
            "cost_info": {
              "read_cost": "23.50",
              "eval_cost": "0.47",
              "prefix_cost": "51.99",
              "data_read_per_join": "12K"
            },
            "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": 4,
            "filtered": "100.00",
            "cost_info": {
              "read_cost": "1.18",
              "eval_cost": "0.47",
              "prefix_cost": "53.64",
              "data_read_per_join": "75"
            },
            "used_columns": [
              "product_id",
              "category_id",
              "position"
            ]
          }
        }
      ]
    }
  }
}

Result

product_id category_ids position
84237 7341,7342,7343,7157M
85542 7313,7338,7219M
85544 7313,7338,7219M
85545 7341,7342,7343,7157M
85547 7313,7338,7219M
85553 7341,7342,7343,7157M
85556 7313,7338,7219M
85557 7313,7338,7219M
85559 7341,7342,7343,7157M
85560 7341,7342,7343,7157M
85562 7313,7338,7219M
85568 7313,7338,7219M
85569 7341,7342,7343,7157M
85587 7313,7338,7219M
85588 7313,7338,7219M
85589 7313,7338,7219M
85593 7313,7338,7219M
85600 7313,7338,7219M
85601 7313,7338,7219M
85602 7313,7338,7219M
85603 7313,7338,7219M
85604 7313,7338,7219M
85868 7184,7221M 0
85870 7184,7221M 0
85871 7184,7221M 0
86893 7341,7342,7343,7157M
90310 7184,7221M 0
90755 7313,7338,7219M
91876 7341,7342,7343,7157M
92475 7313,7338,7219M