Zdaje się, że zostało to dobrze wyjaśnione tutaj:
Kiedy z rzeczownikiem użyjemy "not + a/an" a kiedy "no"?
Jeśli rzeczownik ma niestopniowalne znaczenie (tj. albo czymś może być, albo tym nie być), do wyrażenia braku przynależności do jakiegoś zbioru można użyć tylko przeczenia "not" z odpowiednim przedimkiem:
A potato is not a fruit. = Ziemniak nie jest owocem.
Przy rzeczownikach które mogą mieć pewną gradację, można użyć obu form:
It’s no secret. = To żadna tajemnica. (Tajemnica może być większa lub mniejsza, a więc ma pewną gradację.)
It’s not a secret. = To nie tajemnica. / To żadna tajemnica.