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 = 280 
WHERE 
  cscart_products_categories.product_id IN (
    12684, 12714, 13260, 13267, 12349, 12364, 
    12259, 12504, 12524, 12379, 6843, 6840, 
    6841, 6846, 13274, 13286, 13280, 13292, 
    6962, 6966, 6967, 6965, 6963, 6952, 
    6953, 3484, 3487, 3485, 3486, 6969, 
    3434, 6947, 3424, 3911, 3422, 3910, 
    3421, 3909, 3420, 3423, 3912, 3430, 
    3429, 3437, 3436, 3438, 6959, 3425
  ) 
GROUP BY 
  cscart_products_categories.product_id

Query time 0.00225

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "60.91"
    },
    "grouping_operation": {
      "using_temporary_table": true,
      "using_filesort": true,
      "cost_info": {
        "sort_cost": "1.58"
      },
      "nested_loop": [
        {
          "table": {
            "table_name": "cscart_categories",
            "access_type": "ALL",
            "possible_keys": [
              "PRIMARY",
              "c_status",
              "p_category_id"
            ],
            "rows_examined_per_scan": 46,
            "rows_produced_per_join": 1,
            "filtered": "4.00",
            "cost_info": {
              "read_cost": "5.15",
              "eval_cost": "0.18",
              "prefix_cost": "5.33",
              "data_read_per_join": "7K"
            },
            "used_columns": [
              "category_id",
              "storefront_id",
              "usergroup_ids",
              "status"
            ],
            "attached_condition": "((`test2_gaseus`.`cscart_categories`.`storefront_id` in (0,1)) and ((`test2_gaseus`.`cscart_categories`.`usergroup_ids` = '') or (0 <> find_in_set(0,`test2_gaseus`.`cscart_categories`.`usergroup_ids`)) or (0 <> find_in_set(1,`test2_gaseus`.`cscart_categories`.`usergroup_ids`))) and (`test2_gaseus`.`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": [
              "test2_gaseus.cscart_categories.category_id"
            ],
            "rows_examined_per_scan": 83,
            "rows_produced_per_join": 1,
            "filtered": "1.03",
            "index_condition": "(`test2_gaseus`.`cscart_products_categories`.`product_id` in (12684,12714,13260,13267,12349,12364,12259,12504,12524,12379,6843,6840,6841,6846,13274,13286,13280,13292,6962,6966,6967,6965,6963,6952,6953,3484,3487,3485,3486,6969,3434,6947,3424,3911,3422,3910,3421,3909,3420,3423,3912,3430,3429,3437,3436,3438,6959,3425))",
            "cost_info": {
              "read_cost": "38.18",
              "eval_cost": "0.16",
              "prefix_cost": "58.78",
              "data_read_per_join": "25"
            },
            "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",
              "test2_gaseus.cscart_products_categories.product_id"
            ],
            "rows_examined_per_scan": 1,
            "rows_produced_per_join": 1,
            "filtered": "100.00",
            "cost_info": {
              "read_cost": "0.39",
              "eval_cost": "0.16",
              "prefix_cost": "59.33",
              "data_read_per_join": "25"
            },
            "used_columns": [
              "product_id",
              "category_id",
              "position"
            ]
          }
        }
      ]
    }
  }
}

Result

product_id category_ids position
3420 292M
3421 292M
3422 292M
3423 292M
3424 292M
3425 284M,267,312,282
3429 288M,273,286
3430 286,288M,273
3434 303M
3436 288M,286,273
3437 288M,286,273
3438 288M,286,273
3484 302M
3485 302M
3486 302M
3487 302M
3909 292M
3910 292M
3911 292M
3912 292M
6840 287M
6841 287M
6843 287M
6846 287M
6947 292M,267,282
6952 301M,267,282
6953 267,282,301M
6959 282,267,312,284M
6962 267,282M,283
6963 282M,267,283
6965 267,282M,283
6966 267,282M,283
6967 267,282M,283
6969 303M
12259 306M
12349 306M
12364 306M
12379 318M
12504 306M
12524 306M
12684 283M
12714 283M
13260 283M
13267 283M
13274 288M
13280 288M
13286 288M
13292 288M