If you mean to be using the jQuery function .not, you need to call it on a jQuery object (currently you're trying to call it on a string). Here' an example:
$('ul a span', '#menu').not('{Developers}').css
^--- changes here ---^
If you really mean selector as in your title, then it's :not, not .not (reference), and it would need to be part of the selector string. But you said later in your question that you tried :not and it didn't work (I wasn't sure where or how you tried :not, though).
I think there's another problem with that code, because both .not and :not expect a selector (.not also allows an element/jQuery instance or function), and the selector '{Developers}' is invalid.
From your comment that it's working other than the exception, I can only surmise that something else is changing the background on the elements, because the code as quoted will fail (throw an exception, that is barring your having added a not function to String.prototype), and won't enter the $ function at all, much less get to the css part of it.
If your goal is to color the background of the spans matching the selector ul a span under the element with the ID menu but not the span containing the text "{Developers}", you need to use the :contains pseudo-class (taken out of CSS3 but jQuery supports it):
$("#menu ul a span:not(:contains('{Developers}'))").css(...
Live example
If you prefer the form that passes #menu as a context parameter instead:
$("ul a span", "#menu").not(":contains('{Developers}')").css(...
Live example ...but jQuery will handle them both efficiently.
not()against an ID attribute, since IDs must be unique.