Я прочитала такое объяснение в детской книжке:Перед существительным есть некое окошко для артикля , и есть слова, которые заменяют артикль, например, числительные, притяжательные местоимения и прочее. Слово "no" одно из таких слов, т.е. если такие слова стоят перед существительными, то встают в это окошечко, а артиклю там места нет )) Соот-но: I have a pen, but I have no book.Но: I have a pen, but I have not a book.Т.е. во втором случае слово "not" в это окошечко не попадает  оно ваще отрицание и относится к сказуемому.