"Do you have cats?"
Translation:У тебя есть кошки?
"Кошка" is a female cat and "кот" is a male cat. When the gender is not specified, it's more common to hear "кошка" as a translation of "cat". So your translation is right, but the proposed one sounds more natural.
It is a word for a tom. Not that the world will end should you use "коты", it just does not make much sense to me. The English sentence asks whether you have cats. Should you use «коты», the sentence will ask specifically if you have toms (but not just any cats).
Russian sometimes defaults to the female form for animals when referring to a group of them. I don't know that it always does that, but for cats and dogs it does. Kind of refreshing considering the bias a lot of Indo-European languages have towards the masculine form of everything! :-D
Instinctively I think to say У ты есть кошки, thinking you/your is ты , explain why this is wrong? please?
Is кошка irregular like девочка in that it adds an и instead of an ы to pluralise it?
This pattern is regular: consonants like г, к, х and ш, ж, щ, ч always use а, у (not я or ю) and и (not ы) right after. As a consequence, if a noun ends in -К or -КА in its dictionary form (e.g., мальчик, носок, флешка, кошка, девочка) it will use И instead of Ы in its case endings.