Display all parent records but only one record of child records of a parent record
Assuming "only the first record of those" means ordered by Id you can use rank() partitioned by ParentId and a case statement in the order by clause.

select T.Id, 
       T.ParentId,
       T.Item
from (
     select T.Id, 
            T.ParentId,
            T.Item,
            rank() over(partition by T.ParentId 
                        order by case when T.ParentID is not null 
                                   then T.Id 
                                   else null
                                 end ) as rn
     from @t as T
     ) as T
where T.rn = 1;