You see all the locks that are held.
If the select's session was holding an IS (from an open transaction and previous statements), that's enough to block the index rebuild. Everything else that wanted locks would have to queue up behind the index rebuild. When that's killed all the locks queued up behind the index rebuild would then be granted, because the locks that the select's session holds won't block them.
Why are you still using sp_who and sp_lock? They're both SQL 2000 (and before) procedures
Microsoft Certified Master: SQL Server, MVP, M.Sc (Comp Sci)SQL In The Wild
: Discussions on DB performance with occasional diversions into recoverability
We walk in the dark places no others will enter
We stand on the bridge and no one may pass