I don’t think there’s a clean general way to do this search right now.
If you have a known fixed set of tags you can do something like:
not (@tag1 or @tag2 or @tag3)
For a general search (not any tag) you’ll have to approximate by detecting tags with a text search. Here’s one simple way to do that:
not matches "(^| )@"
That says to match all items that start with “@” or have an “@” proceeded by a space. This will match all tags, and will exclude all email addresses, but it will also have potential for false matches.
Note that because this is a “not” search you might also be interested in How to do not searches in TaskPaper.