mdfind catalog

Using grep -v to exclude certain locations should work fine. The only caveat is that grep works on lines and, technically, pathnames are not restricted to a single line. Both the linefeed and carriage return characters are valid in pathname components. But such usage is fairly rare, and there is currently no good way to overcome this problem with mdfind (find has a -0 option for this situation).

If you are going to be using grep, you could use it to do the extension filtering as well:
mdfind roll | egrep -v -e ‘.(c|h|html|emlx)$’ -e ‘^/(Volumes/(foo|bar)|Users/fred)/’