Вы, вообще, сами пробовали посмотреть. что вы делаете?
stringify делает из вашего массива - json-строку, а вы ее объединяете со строкой куков... которая, вообще, не известно чем у вас является.
Вообще, в вашем случае, лучше хранить не в куках, а в localStorage, так как куки - максимум 4Kb.
А чтобы нормально парсилось, вам нужно не в строку конкатить строку массива, а в строку собирать массив массивов.
Да и функции getCookie/setCookie неплохо было бы привести.
Если отсюда:
https://learn.javascript.ru/cookie, то можно сделать так:
// есл использовать такую геткуку, будет работать так
function getCookie(name) {
var matches = document.cookie.match(new RegExp(
"(?:^|; )" + name.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, '\\$1') + "=([^;]*)"
));
return matches ? decodeURIComponent(matches[1]) : '[]';
}
var array = [input.value,timer.lastTime(),score];
var winnersList = JSON.parse(getCookie('winnersList')) || [];
winnerList = winnerList.concat([array]); // вот тут у вас массив теперь будет всегда.
setCookie('winnerList', JSON.stringify(winnerList)); // а вот тут у вас сохранились корректно куки