Two approaches: First, take a look at Doug's AppleScripts for iTunes - dougscripts.com. He has a ton of useful scripts, including Super Remove Dead Tracks, which you might be able to modify to just list them if you want.
Or, if all you want to do is create a playlist of songs which have no native file, there is a very simple way to do that (which I found repeated by so many people that I don't know who to attribute it to):
Create a regular playlist, not a smart playlist. For this example, call the playlist "Alive".
Select all tracks in your main library and drag them into "Alive". Note that "dead" tracks with no native file will not appear in this playlist.
Create a smart playlist defined as: Playlist -- Is Not -- Alive. Call this playlist "Dead".
You now have a list of "!" songs which are missing their native files. You could then go ahead and delete the dead ones if you wish.
Deleting is not allowed from a smart playlist. So, select all songs from the new "Dead" playlist by clicking Ctrl A. Then, right click and choose to add a new playlist. Now you will have all of your songs in a non-smart playlist. Select them all by clicking Ctrl A. Using delete removes them from the playlist and not your library, so you will need to use Shift Del.