I'd like to select all SomeTag elements that do not have a TagDetail child element with a N="Category" attribute
SomeTag[not(TagDetail/@N='Category')]
when you think about it your idea of
SomeTag/TagDetail[not(@N='Category')]
clearly can't work because it selects TagDetail elements and you're looking for cases where there isn't a TagDetail element to select.
Michael Kay
http://www.saxonica.com/
Author, XSLT Programmer's Reference and XPath 2.0 Programmer's Reference