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 = 2 
WHERE 
  cscart_products_categories.product_id IN (
    51480, 51479, 51494, 51495, 132, 112, 
    3, 78, 2, 77, 87, 66, 22421, 22424, 22290, 
    50981, 50982, 133, 45, 143, 50983, 51416, 
    51043, 51421, 51471, 51413, 51057, 
    51472, 51547, 51470, 51500, 51412, 
    51529, 51459, 51457, 51460, 51501, 
    51530, 51464, 51051, 51053, 51551, 
    51478, 51469, 51510, 51486, 51531, 
    51467, 51047, 51461, 51044, 51475, 
    51477, 51473, 51437, 51540, 51048, 
    51525, 51458, 51463, 51516, 51532, 
    51545, 51492
  ) 
GROUP BY 
  cscart_products_categories.product_id

Query time 0.00285

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "121.81"
    },
    "grouping_operation": {
      "using_filesort": false,
      "nested_loop": [
        {
          "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": 92,
            "rows_produced_per_join": 92,
            "filtered": "100.00",
            "index_condition": "(`test_uchur_k`.`cscart_products_categories`.`product_id` in (51480,51479,51494,51495,132,112,3,78,2,77,87,66,22421,22424,22290,50981,50982,133,45,143,50983,51416,51043,51421,51471,51413,51057,51472,51547,51470,51500,51412,51529,51459,51457,51460,51501,51530,51464,51051,51053,51551,51478,51469,51510,51486,51531,51467,51047,51461,51044,51475,51477,51473,51437,51540,51048,51525,51458,51463,51516,51532,51545,51492))",
            "cost_info": {
              "read_cost": "48.21",
              "eval_cost": "9.20",
              "prefix_cost": "57.41",
              "data_read_per_join": "1K"
            },
            "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",
              "test_uchur_k.cscart_products_categories.product_id"
            ],
            "rows_examined_per_scan": 1,
            "rows_produced_per_join": 92,
            "filtered": "100.00",
            "cost_info": {
              "read_cost": "23.00",
              "eval_cost": "9.20",
              "prefix_cost": "89.61",
              "data_read_per_join": "1K"
            },
            "used_columns": [
              "product_id",
              "category_id",
              "position"
            ]
          }
        },
        {
          "table": {
            "table_name": "cscart_categories",
            "access_type": "eq_ref",
            "possible_keys": [
              "PRIMARY",
              "c_status",
              "p_category_id"
            ],
            "key": "PRIMARY",
            "used_key_parts": [
              "category_id"
            ],
            "key_length": "3",
            "ref": [
              "test_uchur_k.cscart_products_categories.category_id"
            ],
            "rows_examined_per_scan": 1,
            "rows_produced_per_join": 4,
            "filtered": "5.00",
            "cost_info": {
              "read_cost": "23.00",
              "eval_cost": "0.46",
              "prefix_cost": "121.81",
              "data_read_per_join": "24K"
            },
            "used_columns": [
              "category_id",
              "storefront_id",
              "usergroup_ids",
              "status"
            ],
            "attached_condition": "((`test_uchur_k`.`cscart_categories`.`storefront_id` in (0,1)) and ((`test_uchur_k`.`cscart_categories`.`usergroup_ids` = '') or (0 <> find_in_set(0,`test_uchur_k`.`cscart_categories`.`usergroup_ids`)) or (0 <> find_in_set(1,`test_uchur_k`.`cscart_categories`.`usergroup_ids`))) and (`test_uchur_k`.`cscart_categories`.`status` in ('A','H')))"
          }
        }
      ]
    }
  }
}

Result

product_id category_ids position
2 40M,42,4
3 40M,42,4
45 45,21M
66 40M,42,4
77 21,40M
78 40M,21
87 40M,21
112 40M,44,21
132 42,35,40M
133 40M,42,4
143 45,39M
22290 133M
22421 133M,40
22424 133M,40
50981 133M
50982 133M
50983 40,133M
51043 231M
51044 231M
51047 231M
51048 231M
51051 231M
51053 231M
51057 231M
51412 133M
51413 133M
51416 133M
51421 133M
51437 395M
51457 4M
51458 4M
51459 4M
51460 4M
51461 4M
51463 4M
51464 4M
51467 4M
51469 3M
51470 3M
51471 117M
51472 117M
51473 117M
51475 117M
51477 3M
51478 117M
51479 40,4M,42
51480 40,4M,42
51486 4M
51492 117M
51494 42,204M,40
51495 42,40M,204
51500 83M
51501 158M
51510 260M
51516 258M
51525 279M
51529 205M
51530 83M
51531 260M
51532 190M
51540 237M
51545 79M
51547 81M
51551 237M