Nope! Common Lisp's filter is in fact
remove-if-not, which is exactly the same thing as "keep if": keep all items which match the predicate (removing those that do not).
I suspect the reason the function was deprecated was its naming, nothing more; had it been called retain-if or keep-if, it would not have attracted deprecating attention.
The smell added to your code is just the double-negative name of that function, not what it's doing for you.
The name filter smells even more. Is that filtering for items that match? Or filtering out?
In physical filters, sometimes the filtrate is considered the payload output (that which passes through the filter) and sometimes the retentate (that which is caught in the filter).
keep-if is readable.