В чём может быть проблема?
в том, что Вы выполняете проверку(получаете куку) один раз после(в момент) загрузки страницы, а Вам надо при событиях.(при первой загрузки там будет пусто - undefined, согласно Вашему коду - самая первая строка)
Но проблема в том, что модальное окно показывается постоянно при попытке закрыть страницу. При этом сами куки устанавливаются.
а если страницу перезагрузить после установки куки?
з.ы
...
var alertwin = getCookie("alertwin");//при отсутствии куки тут пусто.
//значение легло при загрузке страницы
//значит после установки куки надо перезагрузить страницу, чтоб там что-то было
//либо сделать повторный запрос getCookie(name)
if (alertwin != "no") {
$(document).mouseleave(function(e){
if (e.clientY < 0) {
...
_________________________________________________________________________
...
$(document).mouseleave(function(e){
var alertwin = getCookie("alertwin");//получаем куку при каждом событии mouseleave
//при первом событии там пусто и код ниже отработает
//при повторном наведении там не пусто и код ниже не отработает
if (alertwin != "no") {
...