This is a known limitation in Jenkins’ built-in filtering capabilities. Unfortunately, there’s no native way to exclude NOT_BUILT jobs directly using the standard Job Status Filter, since Jenkins tends to treat NOT_BUILT as a kind of “stable” state, which can be a bit counterintuitive.
One of the easier paths could be using the View Job Filters plugin. It adds more detailed filtering options, and based on what others have done, it seems to handle NOT_BUILT more explicitly. You might find this gives you exactly the control you’re looking for without too much setup.
Unfortunately View Job Filters doesn’t have the capability either as far as I am aware, it is just able to filter out builds that have never built. In my case, the builds have ran, they just sometimes mark their status as NOT_BUILT.