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 = 286 
WHERE 
  cscart_products_categories.product_id IN (
    6843, 6840, 6841, 6846, 3430, 3429, 3437, 
    3436, 3438, 3477, 3452, 3478, 3479, 
    3453, 3491, 3488, 3497, 3495, 3489, 
    3492, 3496, 3490, 3494, 6951, 3502, 
    3503, 3493, 3498, 3428, 3419, 3418, 
    6946, 6945, 3411, 3415, 3417, 6942, 
    3410, 3413, 3416, 6940, 3414, 6938, 
    6941, 6944, 3412, 6937, 6939, 6943, 
    3165, 3139, 3140, 6712, 6713, 5802
  ) 
GROUP BY 
  cscart_products_categories.product_id

Query time 0.00272

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "68.82"
    },
    "grouping_operation": {
      "using_temporary_table": true,
      "using_filesort": true,
      "cost_info": {
        "sort_cost": "1.87"
      },
      "nested_loop": [
        {
          "table": {
            "table_name": "cscart_categories",
            "access_type": "ALL",
            "possible_keys": [
              "PRIMARY",
              "c_status",
              "p_category_id"
            ],
            "rows_examined_per_scan": 40,
            "rows_produced_per_join": 1,
            "filtered": "4.00",
            "cost_info": {
              "read_cost": "4.54",
              "eval_cost": "0.16",
              "prefix_cost": "4.70",
              "data_read_per_join": "6K"
            },
            "used_columns": [
              "category_id",
              "storefront_id",
              "usergroup_ids",
              "status"
            ],
            "attached_condition": "((`gaseus`.`cscart_categories`.`storefront_id` in (0,1)) and ((`gaseus`.`cscart_categories`.`usergroup_ids` = '') or (0 <> find_in_set(0,`gaseus`.`cscart_categories`.`usergroup_ids`)) or (0 <> find_in_set(1,`gaseus`.`cscart_categories`.`usergroup_ids`))) and (`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": [
              "gaseus.cscart_categories.category_id"
            ],
            "rows_examined_per_scan": 110,
            "rows_produced_per_join": 1,
            "filtered": "1.06",
            "index_condition": "(`gaseus`.`cscart_products_categories`.`product_id` in (6843,6840,6841,6846,3430,3429,3437,3436,3438,3477,3452,3478,3479,3453,3491,3488,3497,3495,3489,3492,3496,3490,3494,6951,3502,3503,3493,3498,3428,3419,3418,6946,6945,3411,3415,3417,6942,3410,3413,3416,6940,3414,6938,6941,6944,3412,6937,6939,6943,3165,3139,3140,6712,6713,5802))",
            "cost_info": {
              "read_cost": "44.00",
              "eval_cost": "0.19",
              "prefix_cost": "66.30",
              "data_read_per_join": "29"
            },
            "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",
              "gaseus.cscart_products_categories.product_id"
            ],
            "rows_examined_per_scan": 1,
            "rows_produced_per_join": 1,
            "filtered": "100.00",
            "cost_info": {
              "read_cost": "0.47",
              "eval_cost": "0.19",
              "prefix_cost": "66.96",
              "data_read_per_join": "29"
            },
            "used_columns": [
              "product_id",
              "category_id",
              "position"
            ]
          }
        }
      ]
    }
  }
}

Result

product_id category_ids position
3139 289M
3140 289M
3165 289M
3410 288M
3411 288M
3412 282,267,288M
3413 288M
3414 282,267,288M
3415 288M
3416 288M
3417 288M
3418 288M
3419 288M
3428 287,272,286M 0
3429 273,288M,286 0
3430 273,288M,286 0
3436 273,288M,286 0
3437 273,288M,286 0
3438 273,288M,286 0
3452 287,272,286M 0
3453 287,272,286M 0
3477 287,272,286M 0
3478 287,272,286M 0
3479 287,272,286M 0
3488 287,272,286M 0
3489 287,272,286M 0
3490 287,272,286M 0
3491 287,272,286M 0
3492 287,272,286M 0
3493 287,272,286M 0
3494 287,272,286M 0
3495 287,272,286M 0
3496 287,272,286M 0
3497 287,272,286M 0
3498 287,272,286M 0
3502 287,272,286M 0
3503 287,272,286M 0
5802 287,272,286M 0
6712 289M
6713 289M
6840 287M
6841 287M
6843 287M
6846 287M
6937 282,267,288M
6938 282,267,288M
6939 282,267,288M
6940 288M
6941 282,267,288M
6942 288M
6943 282,267,288M
6944 282,267,288M
6945 282,267,288M
6946 282,267,288M
6951 287,272,286M 0