Use a recursive query, and you'll be able to retrieve all records in one hit:
WITH cte As
(
SELECT
User_id,
'/' + CAST(User_id As varchar(max)) + '/' As path
FROM
Table_xyz
WHERE
Reference_id = @ID
UNION ALL
SELECT
B.User_id,
A.path + CAST(B.User_id As varchar(max)) + '/'
FROM
cte As A
INNER JOIN Table_xyz As B
ON B.Reference_id = A.User_id
WHERE
A.path Not Like '%/' + CAST(B.User_id As varchar(max)) + '/%'
)
SELECT
User_id
FROM
cte
;