'No' is a contraction of Old English 'ne + a' (not ever) — the same negation particle behind nearly every 'n-' word.
Not any; used to indicate negation, denial, refusal, or the absence of something.
From Old English 'nā' (no, not, never — used as an adverb) and 'nān' (no, none, not one — used as a determiner), from Proto-Germanic *nē (not) and *ainaz (one). The adverbial 'no' comes from 'nā,' contraction of 'ne' (not) + 'ā' (ever) — literally 'not ever.' The determiner 'no' comes from 'nān,' contraction of 'ne' (not) + 'ān' (one) — literally 'not one.' Both ultimately trace to PIE *ne (not), the universal Indo-European negator. Key roots: *ne (Proto-Indo-European: "not (negation particle)").
Almost every negative word in English starting with 'n' traces back to PIE *ne (not): 'no,' 'not,' 'none,' 'never,' 'neither,' 'nor,' 'nothing,' 'nowhere,' 'nay,' 'naught,' 'null,' 'nihil,' 'negate,' 'annihilate.' Even 'nice' originally meant 'not-knowing' (from Latin 'nescius,' ne + scire), and 'nonchalant' is 'not heated' (non + calere).