Это возможно, если в localStorage есть какие-то элементы, но нет элемента "words".
В любом случае, для несуществующего элемента localStorage.getItem вернет null, а JSON.parse(null) === null. Поэтому лучше написать как-то так:
words = JSON.parse(localStorage.getItem('words')) || [];