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 = 373 
WHERE 
  cscart_products_categories.product_id IN (
    2527, 2548, 2553, 2554, 1735, 2521, 2547, 
    2520, 2546, 2526, 2528, 2549, 2519, 
    2544, 2522, 2518, 2543, 1736, 2551, 
    2523, 2525, 2550, 1731, 1732, 2531, 
    1737, 2530, 2529, 1572, 1523, 2552, 
    2524, 2545, 1730, 1577, 2541, 2517, 
    2542, 1733, 1734
  ) 
GROUP BY 
  cscart_products_categories.product_id

Query time 0.00101

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "24.60"
    },
    "grouping_operation": {
      "using_temporary_table": true,
      "using_filesort": true,
      "cost_info": {
        "sort_cost": "1.09"
      },
      "nested_loop": [
        {
          "table": {
            "table_name": "cscart_categories",
            "access_type": "ALL",
            "possible_keys": [
              "PRIMARY",
              "c_status",
              "p_category_id"
            ],
            "rows_examined_per_scan": 68,
            "rows_produced_per_join": 2,
            "filtered": "4.00",
            "cost_info": {
              "read_cost": "7.63",
              "eval_cost": "0.27",
              "prefix_cost": "7.91",
              "data_read_per_join": "9K"
            },
            "used_columns": [
              "category_id",
              "storefront_id",
              "usergroup_ids",
              "status"
            ],
            "attached_condition": "((`cscartdevel`.`cscart_categories`.`storefront_id` in (0,1)) and ((`cscartdevel`.`cscart_categories`.`usergroup_ids` = '') or (0 <> find_in_set(0,`cscartdevel`.`cscart_categories`.`usergroup_ids`)) or (0 <> find_in_set(1,`cscartdevel`.`cscart_categories`.`usergroup_ids`))) and (`cscartdevel`.`cscart_categories`.`status` in ('A','H')))"
          }
        },
        {
          "table": {
            "table_name": "cscart_products_categories",
            "access_type": "ref",
            "possible_keys": [
              "PRIMARY",
              "pt"
            ],
            "key": "PRIMARY",
            "used_key_parts": [
              "category_id"
            ],
            "key_length": "3",
            "ref": [
              "cscartdevel.cscart_categories.category_id"
            ],
            "rows_examined_per_scan": 16,
            "rows_produced_per_join": 1,
            "filtered": "2.50",
            "index_condition": "(`cscartdevel`.`cscart_products_categories`.`product_id` in (2527,2548,2553,2554,1735,2521,2547,2520,2546,2526,2528,2549,2519,2544,2522,2518,2543,1736,2551,2523,2525,2550,1731,1732,2531,1737,2530,2529,1572,1523,2552,2524,2545,1730,1577,2541,2517,2542,1733,1734))",
            "cost_info": {
              "read_cost": "10.88",
              "eval_cost": "0.11",
              "prefix_cost": "23.14",
              "data_read_per_join": "17"
            },
            "used_columns": [
              "product_id",
              "category_id",
              "link_type"
            ]
          }
        },
        {
          "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",
              "cscartdevel.cscart_products_categories.product_id"
            ],
            "rows_examined_per_scan": 1,
            "rows_produced_per_join": 1,
            "filtered": "100.00",
            "cost_info": {
              "read_cost": "0.27",
              "eval_cost": "0.11",
              "prefix_cost": "23.52",
              "data_read_per_join": "17"
            },
            "used_columns": [
              "product_id",
              "category_id",
              "position"
            ]
          }
        }
      ]
    }
  }
}

Result

product_id category_ids position
1523 374M
1572 374M
1577 374M
1730 374M
1731 374M
1732 374M
1733 374M
1734 374M
1735 374M
1736 374M
1737 374M
2517 374M
2518 374M
2519 374M
2520 374M
2521 374M
2522 374M
2523 374M
2524 374M
2525 374M
2526 374M
2527 374M
2528 374M
2529 374M
2530 374M
2531 374M
2541 374M
2542 374M
2543 374M
2544 374M
2545 374M
2546 374M
2547 374M
2548 374M
2549 374M
2550 374M
2551 374M
2552 374M
2553 374M
2554 374M