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 = 7336 
WHERE 
  cscart_products_categories.product_id IN (
    94761, 94763, 94765, 94816, 94950, 94951, 
    94956, 94957, 95566, 95569, 95571, 
    95574, 95575, 95578, 95579, 95580, 
    95581, 95587, 95588, 95589, 95590, 
    95591, 95629, 95630
  ) 
GROUP BY 
  cscart_products_categories.product_id

Query time 0.00053

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "63.28"
    },
    "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": 70,
            "rows_produced_per_join": 70,
            "filtered": "100.00",
            "using_index": true,
            "cost_info": {
              "read_cost": "7.29",
              "eval_cost": "7.00",
              "prefix_cost": "14.29",
              "data_read_per_join": "1K"
            },
            "used_columns": [
              "product_id",
              "category_id",
              "link_type"
            ],
            "attached_condition": "(`nuie_scalesta_net`.`cscart_products_categories`.`product_id` in (94761,94763,94765,94816,94950,94951,94956,94957,95566,95569,95571,95574,95575,95578,95579,95580,95581,95587,95588,95589,95590,95591,95629,95630))"
          }
        },
        {
          "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",
              "nuie_scalesta_net.cscart_products_categories.product_id"
            ],
            "rows_examined_per_scan": 1,
            "rows_produced_per_join": 70,
            "filtered": "100.00",
            "cost_info": {
              "read_cost": "17.50",
              "eval_cost": "7.00",
              "prefix_cost": "38.79",
              "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": [
              "nuie_scalesta_net.cscart_products_categories.category_id"
            ],
            "rows_examined_per_scan": 1,
            "rows_produced_per_join": 3,
            "filtered": "5.00",
            "cost_info": {
              "read_cost": "17.50",
              "eval_cost": "0.35",
              "prefix_cost": "63.29",
              "data_read_per_join": "9K"
            },
            "used_columns": [
              "category_id",
              "usergroup_ids",
              "status",
              "storefront_id"
            ],
            "attached_condition": "((`nuie_scalesta_net`.`cscart_categories`.`storefront_id` in (0,1)) and ((`nuie_scalesta_net`.`cscart_categories`.`usergroup_ids` = '') or (0 <> find_in_set(0,`nuie_scalesta_net`.`cscart_categories`.`usergroup_ids`)) or (0 <> find_in_set(1,`nuie_scalesta_net`.`cscart_categories`.`usergroup_ids`))) and (`nuie_scalesta_net`.`cscart_categories`.`status` in ('A','H')))"
          }
        }
      ]
    }
  }
}

Result

product_id category_ids position
94761 7313,7338,7219M
94763 7313,7338,7219M
94765 7313,7338,7219M
94816 7313,7338,7219M
94950 7313,7338,7219M
94951 7313,7338,7219M
94956 7339,7329M
94957 7339,7329M
95566 7313,7338,7219M
95569 7313,7338,7219M
95571 7313,7338,7219M
95574 7313,7338,7219M
95575 7313,7338,7219M
95578 7313,7338,7219M
95579 7313,7338,7219M
95580 7313,7338,7219M
95581 7313,7338,7219M
95587 7313,7338,7219M
95588 7313,7338,7219M
95589 7313,7338,7219M
95590 7313,7338,7219M
95591 7313,7338,7219M
95629 7313,7338,7219M
95630 7313,7338,7219M