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, 2) 
  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 = 523 
WHERE 
  cscart_products_categories.product_id IN (
    4748, 4749, 4750, 4754, 4755, 4757, 4762, 
    4763, 4764, 4765, 4767, 4768, 4769, 
    4770, 4771, 4774, 4775, 4776, 4778, 
    4779, 4781, 4784, 4785, 4787, 4789, 
    4791, 4792
  ) 
GROUP BY 
  cscart_products_categories.product_id

Query time 0.00173

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "26.73"
    },
    "grouping_operation": {
      "using_temporary_table": true,
      "using_filesort": true,
      "cost_info": {
        "sort_cost": "0.37"
      },
      "nested_loop": [
        {
          "table": {
            "table_name": "cscart_categories",
            "access_type": "ALL",
            "possible_keys": [
              "PRIMARY",
              "c_status",
              "p_category_id"
            ],
            "rows_examined_per_scan": 35,
            "rows_produced_per_join": 1,
            "filtered": "4.00",
            "cost_info": {
              "read_cost": "4.04",
              "eval_cost": "0.14",
              "prefix_cost": "4.18",
              "data_read_per_join": "6K"
            },
            "used_columns": [
              "category_id",
              "usergroup_ids",
              "status",
              "storefront_id"
            ],
            "attached_condition": "((`primapearl_r_new`.`cscart_categories`.`storefront_id` in (0,2)) and ((`primapearl_r_new`.`cscart_categories`.`usergroup_ids` = '') or (0 <> find_in_set(0,`primapearl_r_new`.`cscart_categories`.`usergroup_ids`)) or (0 <> find_in_set(1,`primapearl_r_new`.`cscart_categories`.`usergroup_ids`))) and (`primapearl_r_new`.`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": [
              "primapearl_r_new.cscart_categories.category_id"
            ],
            "rows_examined_per_scan": 45,
            "rows_produced_per_join": 0,
            "filtered": "0.59",
            "index_condition": "(`primapearl_r_new`.`cscart_products_categories`.`product_id` in (4748,4749,4750,4754,4755,4757,4762,4763,4764,4765,4767,4768,4769,4770,4771,4774,4775,4776,4778,4779,4781,4784,4785,4787,4789,4791,4792))",
            "cost_info": {
              "read_cost": "15.75",
              "eval_cost": "0.04",
              "prefix_cost": "26.23",
              "data_read_per_join": "5"
            },
            "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",
              "primapearl_r_new.cscart_products_categories.product_id"
            ],
            "rows_examined_per_scan": 1,
            "rows_produced_per_join": 0,
            "filtered": "100.00",
            "cost_info": {
              "read_cost": "0.09",
              "eval_cost": "0.04",
              "prefix_cost": "26.36",
              "data_read_per_join": "5"
            },
            "used_columns": [
              "product_id",
              "category_id",
              "position"
            ]
          }
        }
      ]
    }
  }
}

Result

product_id category_ids position
4748 524M
4749 524M
4750 524M
4754 524M
4755 524M
4757 524M
4762 524M
4763 524M
4764 524M
4765 524M
4767 524M
4768 524M
4769 524M
4770 524M
4771 524M
4774 524M
4775 524M
4776 524M
4778 524M
4779 524M
4781 524M
4784 524M
4785 524M
4787 524M
4789 524M
4791 524M
4792 524M