Any and All sql clause select id 
from master_tabe 
where id = ALL (select id from user_table where name = 'Nikhil')

select id 
from master_tabe 
where id = ANY (select id from user_table where name = 'Nikhil')


Above mentioned queries are returning the same resultset. According to my knowledge there should be different resultset as the user_table has only one record related to name Nikhil. So according to this Any clause must return 1 row whereas All must return 0 records. Whereas when I add one more record in user_table than All clause statement is returning 0 rows and Any clause is returning only 1 row.

Can someone look into this?
The result you've got return seems very normal to me. 

ANY will return TRUE when at least one value returned by the subquery compares positively. 
Logically, you could compare this to using multiple OR statements, one OR comparison for each value returned by the subquery.

ALL on the other hand requires each value returned by the subquery to compare positively. 
Logically, you could compare this to using multiple AND statements, one AND statement for each value returned by the subquery.

You stated that the subquery originally returned a single record. Therefore it didn't matter whether you used ALL or ANY. As soon as you added another record, there is a difference though. At that moment there are multiple values (ID's) in the subquery to compare to and they will logically be evaluated as OR/AND statements

Example

CREATE TABLE dbo.Tbl (ID int)   
GO  

INSERT dbo.Tbl VALUES (1),(2),(3)
GO

CREATE TABLE dbo.SubTbl (ID int)   
GO  

INSERT dbo.SubTbl VALUES (1),(2)
GO


SELECT ID
FROM dbo.Tbl 
WHERE ID = ANY(SELECT ID FROM dbo.SubTbl)
GO

-- Has the same result as ANY:
SELECT ID
FROM dbo.Tbl 
WHERE ID = 1 OR ID = 2
GO

SELECT ID
FROM dbo.Tbl 
WHERE ID = ALL(SELECT ID FROM dbo.SubTbl)
GO

-- Has the same result as ALL:
SELECT ID
FROM dbo.Tbl 
WHERE ID = 1 AND ID = 2
GO