As otherwise stated, in English, when counting "zero" is plural. Sometimes "no" means "zero", sometimes it is used as negation.
While negation and a count of zero are almost always identical in meaning, they impact the subtext (meaning that isn't written) of the sentence.
The context and intent of the sentence will determine which subtexts are valid. In some cases "no" is almost always used for counting, and therefore if you try to use it for negation people will assume you made a grammatical mistake.
HOWEVER, "I have no friend" would be a perfectly acceptable response to the statement "you need a friend to enter". In this case it is clear you are using "no" as a negation, to indicate you do not "have a friend with you at the moment", directly negated the given statement.
Most languages can represent this distinction, as although almost always technically the same, they form the basis of two different concepts.
In set theory:
∀x,¬A(x)→ x∈∅
∀x,¬A(x)⇒False
In JavaScript:
!people.some(person => isIsland(person)) === true
person.filter(person => isIsland(person)).length === 0
The most important thing to remember, is if you are using negation or counting. Counting zero things requires plural, negation purely negates the original sentence, leaving pluralization untouched.