For the sentence I have 0 votes, which one of these sentences should I say?
Mi havas 0 voĉdonon.
Mi havas 0 voĉdonojn.
According to PMEG, it is equally correct to either:
You just have to pick one and stick to it (also note that negative numbers should use the same form as their positive counterpart).
Usually, however, in everyday speech people use neniu instead of nul, so that often sounds more natural: Mi havas neniun voĉdonon. (See PMEG.)
As a native English speaker, zero is the removal of the possibility of the quantity being 1, and so it seems to make sense that it's treated as a plural. However, as far as I know, this is not how it's treated in French and some other languages.
While either will be tendencies of native speakers of different mother languages, perhaps saying:
Mi ne havas voĉdonon.
would be clearer, and avoid any assumption that 0
is a mistake because of the plural ending.
I prefer the interpretation that singular always refers to exactly one (or minus one, negative one). But there are other authoritative interpretations, as Chives said, and you can use either singular or plural.
But voĉdono means voting. I suppose you want to say
Mi havas nul voĉojn
I would use nul only in contexts with other numbers, like
Karlo ricevis tridek voĉojn, Marta ok kaj mi nul voĉojn.
According to Unicode CLDR for language plural rules, Esperanto uses singular for only exactly 1 (and -1). Any other value such as 0 or 0,5 would therefore use plural.
Ĉu ne, mi havas nenion da voĉdonoj? -> mi havas nul da voĉdonoj?