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 = 266 
WHERE 
  cscart_products_categories.product_id IN (
    431070, 431397, 431433, 431255, 431389, 
    431268, 431398, 430783, 431432, 431443, 
    431305, 431306, 430775, 431399, 431493, 
    431386, 431417, 430784, 430967, 431444, 
    431272, 435512, 431016, 431416, 431484, 
    430776, 431254, 431490, 435513, 430763, 
    431371, 431461, 431216, 431318, 431319, 
    431271, 435515, 431269, 431372, 431373, 
    431173, 435514, 430729, 431267, 431270, 
    387051, 435516, 435517, 435518, 432250
  ) 
GROUP BY 
  cscart_products_categories.product_id

Query time 0.00201

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "141.08"
    },
    "grouping_operation": {
      "using_filesort": false,
      "nested_loop": [
        {
          "table": {
            "table_name": "cscart_products_categories",
            "access_type": "range",
            "possible_keys": [
              "PRIMARY",
              "link_type",
              "pt"
            ],
            "key": "pt",
            "used_key_parts": [
              "product_id"
            ],
            "key_length": "3",
            "rows_examined_per_scan": 50,
            "rows_produced_per_join": 50,
            "filtered": "100.00",
            "using_index": true,
            "cost_info": {
              "read_cost": "11.08",
              "eval_cost": "10.00",
              "prefix_cost": "21.08",
              "data_read_per_join": "800"
            },
            "used_columns": [
              "product_id",
              "category_id",
              "link_type"
            ],
            "attached_condition": "(`webmarco`.`cscart_products_categories`.`product_id` in (431070,431397,431433,431255,431389,431268,431398,430783,431432,431443,431305,431306,430775,431399,431493,431386,431417,430784,430967,431444,431272,435512,431016,431416,431484,430776,431254,431490,435513,430763,431371,431461,431216,431318,431319,431271,435515,431269,431372,431373,431173,435514,430729,431267,431270,387051,435516,435517,435518,432250))"
          }
        },
        {
          "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",
              "webmarco.cscart_products_categories.product_id"
            ],
            "rows_examined_per_scan": 1,
            "rows_produced_per_join": 50,
            "filtered": "100.00",
            "cost_info": {
              "read_cost": "50.00",
              "eval_cost": "10.00",
              "prefix_cost": "81.08",
              "data_read_per_join": "800"
            },
            "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": [
              "webmarco.cscart_products_categories.category_id"
            ],
            "rows_examined_per_scan": 1,
            "rows_produced_per_join": 2,
            "filtered": "5.00",
            "cost_info": {
              "read_cost": "50.00",
              "eval_cost": "0.50",
              "prefix_cost": "141.08",
              "data_read_per_join": "14K"
            },
            "used_columns": [
              "category_id",
              "usergroup_ids",
              "status",
              "storefront_id"
            ],
            "attached_condition": "((`webmarco`.`cscart_categories`.`storefront_id` in (0,1)) and ((`webmarco`.`cscart_categories`.`usergroup_ids` = '') or find_in_set(0,`webmarco`.`cscart_categories`.`usergroup_ids`) or find_in_set(1,`webmarco`.`cscart_categories`.`usergroup_ids`)) and (`webmarco`.`cscart_categories`.`status` in ('A','H')))"
          }
        }
      ]
    }
  }
}

Result

product_id category_ids position
387051 2578M
430729 2601M
430763 2601M
430775 2601M
430776 2601M
430783 2601M
430784 2601M
430967 2601M
431016 2601M
431070 2601M
431173 2601M
431216 2601M
431254 2601M
431255 2601M
431267 2601M
431268 2601M
431269 2601M
431270 2601M
431271 2601M
431272 2601M
431305 2601M
431306 2601M
431318 2601M
431319 2601M
431371 2601M
431372 2601M
431373 2601M
431386 2601M
431389 2601M
431397 2601M
431398 2601M
431399 2601M
431416 2601M
431417 2601M
431432 2601M
431433 2601M
431443 2601M
431444 2601M
431461 2601M
431484 2601M
431490 2601M
431493 2601M
432250 2599M
435512 2601M
435513 2601M
435514 2601M
435515 2601M
435516 2601M
435517 2601M
435518 9401M