Thanks to Mayukh Bhattacharya that solved the problem by suggesting to wrap the idx inside a MAX(idx, 1) function when using it inside MAKEARRAY!
Final function looks like that:
=LET(
dataAll; PromoTbl[[SO_inizio]:[SO_ fine]];
daySel; D$6;
cliente; DASHBOARD!$B$2;
filtroCliente; (PromoTbl[[L6]:[L6]]=cliente);
filterWk; ((BYROW(PromoTbl[[SO_ fine]:[SO_ fine]];LAMBDA(row;MIN(daySel+7;row)))-BYROW(PromoTbl[[SO_inizio]:[SO_inizio]];LAMBDA(row;MAX(daySel;row)))+1)>=1);
filterWkBef; ((BYROW(PromoTbl[[SO_ fine]:[SO_ fine]];LAMBDA(row;MIN(daySel-1;row)))-BYROW(PromoTbl[[SO_inizio]:[SO_inizio]];LAMBDA(row;MAX(daySel-7;row)))+1)>=1);
dataWk; SORT(FILTER(dataAll;filtroCliente*filterWk;"NA"));
dataWkBef; SORT(FILTER(dataAll;filtroCliente*filterWkBef;"NA"));
listWk; BYROW(dataWk;LAMBDA(row;IFERROR(TEXT(CHOOSECOLS(row;1);"gg-mmm-aa") & "|" & TEXT(CHOOSECOLS(row;2);"gg-mmm-aa");"")));
listWkBef; BYROW(dataWkBef;LAMBDA(row;IFERROR(TEXT(CHOOSECOLS(row;1);"gg-mmm-aa") & "|" & TEXT(CHOOSECOLS(row;2);"gg-mmm-aa");"")));
firstRow; TAKE(listWk;1);
idx; MAX(IFERROR(MATCH(firstRow;listWkBef;0);1);1);
spaces; MAKEARRAY(idx;1;LAMBDA(r;c;""));
newArr; DROP(VSTACK(spaces;listWk);1);
newArr
)