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 = 7184 
WHERE 
  cscart_products_categories.product_id IN (
    96219, 96220, 96221, 96222, 96223, 96224, 
    96225, 96226, 96227, 96228, 96229, 
    96230, 96231, 96232, 96233, 96234, 
    96235, 96236, 96237, 96238, 96239, 
    96240, 96241, 96242, 96243, 96244, 
    96304, 96305, 96306, 96307, 96308, 
    96309, 96310, 96311, 96312, 96313, 
    96314, 96315, 96316, 96317, 96318, 
    96319, 96320, 96321, 96322, 96323, 
    96324, 96325
  ) 
GROUP BY 
  cscart_products_categories.product_id

Query time 0.00151

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost_info": {
      "query_cost": "42.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": 74,
            "rows_produced_per_join": 74,
            "filtered": "100.00",
            "using_index": true,
            "cost_info": {
              "read_cost": "7.69",
              "eval_cost": "7.40",
              "prefix_cost": "15.09",
              "data_read_per_join": "1K"
            },
            "used_columns": [
              "product_id",
              "category_id",
              "link_type"
            ],
            "attached_condition": "(`nuie_scalesta_net`.`cscart_products_categories`.`product_id` in (96219,96220,96221,96222,96223,96224,96225,96226,96227,96228,96229,96230,96231,96232,96233,96234,96235,96236,96237,96238,96239,96240,96241,96242,96243,96244,96304,96305,96306,96307,96308,96309,96310,96311,96312,96313,96314,96315,96316,96317,96318,96319,96320,96321,96322,96323,96324,96325))"
          }
        },
        {
          "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": "18.50",
              "eval_cost": "0.37",
              "prefix_cost": "40.99",
              "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')))"
          }
        },
        {
          "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": 3,
            "filtered": "100.00",
            "cost_info": {
              "read_cost": "0.93",
              "eval_cost": "0.37",
              "prefix_cost": "42.28",
              "data_read_per_join": "59"
            },
            "used_columns": [
              "product_id",
              "category_id",
              "position"
            ]
          }
        }
      ]
    }
  }
}

Result

product_id category_ids position
96219 7337,7217M
96220 7337,7217M
96221 7337,7217M
96222 7337,7217M
96223 7337,7217M
96224 7337,7217M
96225 7337,7217M
96226 7337,7217M
96227 7337,7217M
96228 7337,7217M
96229 7337,7217M
96230 7337,7217M
96231 7337,7217M
96232 7337,7217M
96233 7337,7217M
96234 7337,7217M
96235 7337,7217M
96236 7337,7217M
96237 7337,7217M
96238 7337,7217M
96239 7337,7217M
96240 7337,7217M
96241 7337,7217M
96242 7337,7217M
96243 7337,7217M
96244 7337,7217M
96304 7185M
96305 7186M
96306 7186M
96307 7186M
96308 7185M
96309 7186M
96310 7185M
96311 7185M
96312 7186M
96313 7185M
96314 7185M
96315 7186M
96316 7185M
96317 7186M
96318 7185M
96319 7185M
96320 7186M
96321 7185M
96322 7186M
96323 7185M
96324 7186M
96325 7185M