Not a native speaker but a thumb-rule is that 'kein' is (generally) used with a noun.
Eg: With noun:
Sie haben keine Haustiere. (They have no pets)
Ich habe keine Zeit. (I have no time)
Das Baby isst nicht. (The baby is not eating)
Es ist nicht möglich. (It is not possible)
But when you are using the noun form for the same sentence, it becomes: Es hat keine Möglichkeit. (It has no possibility)
What I did in this sentence was to think of it like "Ich habe eine katze" and add the k to make it negative. "Ich habe keine Katze". To choose between keine and kein I remembered that Katze is female, hence keine. Not a native english speaker or a native german speaker, so a) I could be wrong with my method, and b) I apologize for any grammatical error.
Nicht is an adverb and is the german equivalent to the english 'not'. Adverbs like nicht are used to describe adjectives, verbs and other adverbs Kein is kind of like an article or adjective and, unlike german adverbs, does change with gender (masculine, feminine and neuter), case (Nominative, Dative, Accusative) and number (singular and plural)
Both are reasonable sentences.
Ich habe keine Katze assumes that if you had a cat, you would have just one, but you don't have even one, you have none at all.
Ich habe keine Katzen assumes that if you had cats, you would have at least one, but you don't have any at all.
Much as in English: "I don't have a cat" versus "I don't have any cats" -- both are possible but start from different underlying assumptions about how many cats you would have if you had any.
Rule of thumb:
Plural with countables and singular with uncountables.
I have no cats. I have no dogs. I have no houses. I do not have any houses. (Dog, cat , house are countable nouns.)
But, I have no rice. I have no sugar. I have no water. I do not have any water. (Rice sugar, water are uncountable nouns.)
The noun "cat" is countable, so in the singular it has to be accompanied by a determiner such as "a, my, the, this, no" etc.
So "I do not have cat" is not possible -- it has to be "I do not have a cat" or "I have no cat".
Similarly, incidentally, in German, where Ich habe nicht Katze / Ich habe Katze nicht is not possible and it has to be Ich habe keine Katze. (keine counts as a negative determiner, basically the negative version of eine.)
Could someone please explain the difference between "nicht" and "kein".
You can often think of keine as a combination of nicht eine.
So just as in English you cannot say "I do not have cat" but have to say "I do not have a cat" with both "not" and "a", so in German you need Ich habe keine Katze with keine which is sort of a combination of both nicht and eine.
If there is already a determiner, e.g. the definite article, then you just need nicht, e.g. ich habe den Apfel nicht "I don't have the apple" (i.e. a specific apple that you had been talking about before) or ich habe dein Buch nicht "I don't have your book".
However, with mass nouns German usually uses kein as well, so where English can have both "I do not have water" and "I do not have any water", German pretty much has to use Ich habe kein Wasser (the equivalent of "not any" rather than simply "not").