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 = 277 
WHERE 
  cscart_products_categories.product_id IN (
    12546, 12633, 12573, 12548, 12580, 12576, 
    12565, 12567, 12549, 12581, 12557, 
    12558, 12570, 12568, 12547, 12569, 
    12584, 12592, 12575, 12574, 12550, 
    12544, 12564, 12577, 12579, 12555, 
    12560, 12556, 12561, 12572, 12583, 
    12591, 12582, 12590, 12571, 12632, 
    12631, 15938, 12638, 12599, 12627, 
    12600, 12639, 15800, 12616, 12601, 
    12628, 12602, 12640, 12647, 12605, 
    12606, 12637, 12612, 12613, 12641, 
    12642, 12648, 12611, 12596, 12607, 
    12608, 12610, 12643
  ) 
GROUP BY 
  cscart_products_categories.product_id

Query time 0.00222

JSON explain

{
  "query_block": {
    "select_id": 1,
    "table": {
      "table_name": "cscart_products_categories",
      "access_type": "range",
      "possible_keys": ["PRIMARY", "pt"],
      "key": "pt",
      "key_length": "3",
      "used_key_parts": ["product_id"],
      "rows": 148,
      "filtered": 100,
      "index_condition": "cscart_products_categories.product_id in (12546,12633,12573,12548,12580,12576,12565,12567,12549,12581,12557,12558,12570,12568,12547,12569,12584,12592,12575,12574,12550,12544,12564,12577,12579,12555,12560,12556,12561,12572,12583,12591,12582,12590,12571,12632,12631,15938,12638,12599,12627,12600,12639,15800,12616,12601,12628,12602,12640,12647,12605,12606,12637,12612,12613,12641,12642,12648,12611,12596,12607,12608,12610,12643)"
    },
    "table": {
      "table_name": "product_position_source",
      "access_type": "eq_ref",
      "possible_keys": ["PRIMARY", "pt"],
      "key": "PRIMARY",
      "key_length": "6",
      "used_key_parts": ["category_id", "product_id"],
      "ref": [
        "const",
        "noframes_angrybeaver.cscart_products_categories.product_id"
      ],
      "rows": 1,
      "filtered": 100
    },
    "table": {
      "table_name": "cscart_categories",
      "access_type": "eq_ref",
      "possible_keys": ["PRIMARY", "c_status", "p_category_id"],
      "key": "PRIMARY",
      "key_length": "3",
      "used_key_parts": ["category_id"],
      "ref": ["noframes_angrybeaver.cscart_products_categories.category_id"],
      "rows": 1,
      "filtered": 100,
      "attached_condition": "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')"
    }
  }
}

Result

product_id category_ids position
12544 278,277,267M 0
12546 277,267,278M 0
12547 278,267,277M 0
12548 277,278,267M 0
12549 267,278,277M 0
12550 278,267,277M 0
12555 277,267,278M 0
12556 277,278,267M 0
12557 278,267,277M 0
12558 278,267,277M 0
12560 267,277,278M 0
12561 267,278,277M 0
12564 277,278,267M 0
12565 278,277,267M 0
12567 278,267,277M 0
12568 267,278,277M 0
12569 278,277,267M 0
12570 277,267,278M 0
12571 267,278,277M 0
12572 267,277,278M 0
12573 267,278,277M 0
12574 277,267,278M 0
12575 267,278,277M 0
12576 278,267,277M 0
12577 267,278,277M 0
12579 277,278,267M 0
12580 278,277,267M 0
12581 277,267,278M 0
12582 267,277,278M 0
12583 267,277,278M 0
12584 278,267,277M 0
12590 267,278,277M 0
12591 277,267,278M 0
12592 267,277,278M 0
12596 277,267,270M 0
12599 277,267,270M 0
12600 277,267,270M 0
12601 267,270,277M 0
12602 270,277,267M 0
12605 267,277,270M 0
12606 277,270,267M 0
12607 270,267,277M 0
12608 270,277,267M 0
12610 270,277,267M 0
12611 270,267,277M 0
12612 270,267,277M 0
12613 270,267,277M 0
12616 277,270,267M 0
12627 277,270,267M 0
12628 267,277,270M 0
12631 278,277,267M 0
12632 277,278,267M 0
12633 277,278,267M 0
12637 277,267,270M 0
12638 267,277,285,270M 0
12639 270,285,277,267M 0
12640 270,277,285,267M 0
12641 277,270,285,267M 0
12642 277,267,285,270M 0
12643 267,270,285,277M 0
12647 277,270,285,267M 0
12648 267,285,277,270M 0
15800 285,270,267,277M 0
15938 277,267M 0