Short answer
It seems that you're looking for One-Class classification approaches. There are several approches, such as isolation forest, one class SVM, recontruction error of autoencoder (trained only by your positive class), and so on... All those classifiers learn from one class.
EDIT below
About creating a "no cat" class
Must to know: when commonly training classifiers to distinguish cat from no-cat, you should interpret their predictions as follow:
If it says it is a cat, that means that it looks more similar to a cat than to a no cat. Nothing more.
If one day your classifier sees an input that it has never seen in your "no cat" training dataset, it could choose that it looks more similar to a cat.
Conclusion: Be careful/aware when creating "no cat" class.
A first understanding of one-class classification
The objective of one class classification is not to differentiate multiple classes anymore but to find the best descriptive boundaries of your single class.
One easy-to-understand example with a distance approach:
- Take some features that represent your one-class input data.
- In this features space, compute the maximum distance $d_{max}$ between 2 nearest neigbors.
- Project any new input in this features space and compute its distance from its nearest neighbor.
- If this distance is more than $d_{max}$, it is not your class. Otherwise, it is.
Of course this is a primary example but it might give you an idea of what one-class classification does.
One difficulty of one-class classification is to find the right set of features. To go further from this example, anything that bounds a cluster (such as some clustering algorithms) could be used to create a one-class classifier.
Going further
One-class classification problems has draw more and more attention in recent years. You could have a look at those articles: