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 (
    9610, 9611, 9612, 9613, 9614, 9615, 9616, 
    9617, 9618, 9619, 9620, 9621, 9622, 
    9623, 9624, 9625, 9626, 9627, 9628, 
    9629, 9630, 9631, 9632, 9633, 9634, 
    9635, 9636, 9637, 9638, 9639, 9640, 
    9641, 10049, 10050, 10051, 10052, 10053, 
    10054, 10055, 10056, 10057, 10058, 
    10059, 10060, 10061, 10062, 10063, 
    10064
  ) 
GROUP BY 
  cscart_products_categories.product_id

Query time 0.00138

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "75.49"
    },
    "grouping_operation": {
      "using_temporary_table": true,
      "using_filesort": true,
      "cost_info": {
        "sort_cost": "8.96"
      },
      "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": "range",
            "possible_keys": [
              "PRIMARY",
              "pt"
            ],
            "key": "pt",
            "used_key_parts": [
              "product_id"
            ],
            "key_length": "3",
            "rows_examined_per_scan": 56,
            "rows_produced_per_join": 8,
            "filtered": "10.00",
            "index_condition": "(`gaseus`.`cscart_products_categories`.`product_id` in (9610,9611,9612,9613,9614,9615,9616,9617,9618,9619,9620,9621,9622,9623,9624,9625,9626,9627,9628,9629,9630,9631,9632,9633,9634,9635,9636,9637,9638,9639,9640,9641,10049,10050,10051,10052,10053,10054,10055,10056,10057,10058,10059,10060,10061,10062,10063,10064))",
            "using_join_buffer": "hash join",
            "cost_info": {
              "read_cost": "50.58",
              "eval_cost": "0.90",
              "prefix_cost": "64.24",
              "data_read_per_join": "143"
            },
            "used_columns": [
              "product_id",
              "category_id",
              "link_type"
            ],
            "attached_condition": "(`gaseus`.`cscart_products_categories`.`category_id` = `gaseus`.`cscart_categories`.`category_id`)"
          }
        },
        {
          "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": 8,
            "filtered": "100.00",
            "cost_info": {
              "read_cost": "1.40",
              "eval_cost": "0.90",
              "prefix_cost": "66.53",
              "data_read_per_join": "143"
            },
            "used_columns": [
              "product_id",
              "category_id",
              "position"
            ]
          }
        }
      ]
    }
  }
}

Result

product_id category_ids position
9610 306M
9611 306M
9612 306M
9613 306M
9614 306M
9615 306M
9616 306M
9617 306M
9618 306M
9619 306M
9620 306M
9621 306M
9622 306M
9623 306M
9624 306M
9625 306M
9626 306M
9627 306M
9628 306M
9629 306M
9630 306M
9631 306M
9632 306M
9633 306M
9634 306M
9635 306M
9636 306M
9637 306M
9638 306M
9639 306M
9640 306M
9641 306M
10049 306M
10050 306M
10051 306M
10052 306M
10053 306M
10054 306M
10055 306M
10056 306M
10057 306M
10058 306M
10059 306M
10060 306M
10061 306M
10062 306M
10063 306M
10064 306M