Try the below query... hope this will help you.
To better understand I have created a table and inserted records as mentioned.
Did not get the importance of Join_Side column.
--CREATE TABLE dbo.BinaryStructure
--(
-- [User_ID] INT,
-- [Name] VARCHAR(50),
-- Join_Side CHAR(6),
-- Left_Leg INT,
-- Right_Leg INT,
-- Parent_ID INT
--)
--INSERT INTO dbo.BinaryStructure
-- SELECT 100001,'Tinku','Left',100002,100003,0
--UNION ALL SELECT 100002,'Harish','Left',100004,100005,100001
--UNION ALL SELECT 100003,'Gorav','Right',100006,100007,100001
--UNION ALL SELECT 100004,'Prince','Left',100008,NULL,100002
--UNION ALL SELECT 100005,'Ajay','Right',NULL,NULL,100002
--UNION ALL SELECT 100006,'Simran','Left',NULL,NULL,100003
--UNION ALL SELECT 100007,'Raman','Right',NULL,NULL,100003
--UNION ALL SELECT 100008,'Vijay','Left',NULL,NULL,100004
--INSERT INTO dbo.BinaryStructure
-- SELECT 100009,'Suresh','Left',100010,100011,0
--UNION ALL SELECT 100010,'Navin','Left',NULL,NULL,100004
--UNION ALL SELECT 100011,'Ramesh','Left',NULL,NULL,100004
--UNION ALL SELECT 100012,'KAmlesh','Left',100013,100014,100010
--UNION ALL SELECT 100013,'KAmlesh','Left',NULL,NULL,100010
--UNION ALL SELECT 100014,'KAmlesh','Left',NULL,NULL,100010
--SELECT * FROM dbo.BinaryStructure
DECLARE @User_ID INT
SET @User_ID = 100002 --100001
DECLARE @TempTable TABLE ([User_ID] INT, Left_Leg INT, Right_Leg INT, Parent_ID INT)
INSERT INTO @TempTable
SELECT [User_ID] , Left_Leg , Right_Leg , Parent_ID
FROM dbo.BinaryStructure A
WHERE Left_Leg > 0 AND Right_Leg > 0
AND ([User_ID] = @User_ID OR PArent_ID = @User_ID)
SELECT COUNT(1) PairCount FROM @TempTable
Thanks and Regards,
Mayank Tripathi