Ho modificato il codice iniziale, questo funziona.
Adesso penso sia istruttivo per te modificarlo e anziché utilizzare il ciclo per la scansione della lista, che aggiunge un elemento in coda, modifichi la lista mettendoci una struct con un puntatore alla testa e uno alla coda, modifichicando le funzioni di accesso in particolar modo quella relativa all'inserimento in coda.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define STRLUN 41
typedef struct nodoL* listaN;
typedef struct nodoL {
    char s[STRLUN];
    listaN next;
} nodoL;
/** Prototipi delle funzioni */
int palindroma(char * );
/** Prototipi delle funzioni gestione lista */
listaN creaNodo(char * );
listaN AddLista(listaN , char * );
void StampaLista(listaN );
int main() {
    printf("Inserire intero: ");
    int n;
    int i;
    char str[STRLUN];
    fgets(str, STRLUN, stdin);
    n = atoi(str);
    listaN P = NULL;
    listaN N = NULL;
    for(i=0; i<n; i++) {
        printf("Inserire stringa: ");
        fgets(str, STRLUN, stdin);
        if(palindroma(str)==0)
            P = AddLista(P, str);
        else
            N = AddLista(N, str);
    }
    printf("\nStringhe NON Palindrome\n");
    StampaLista(N);
    printf("\nStringhe Palindrome\n");
    StampaLista(P);
    return 0;
}
/** Definizioni delle funzioni */
int palindroma(char *s1) {
    int l = strlen(s1);
    char *s2 = malloc(l*sizeof(char *));
    int j = l-2, i = 0;
    strcpy(s2,s1);
    while(s1[i]!='\0'&&j>=0) {
        if(s1[i]!=s2[j])
            return 1;
        j--;
        i++;
    }
    return 0;
}
/** Definizioni delle funzioni gestione lista */
listaN creaNodo(char * s1) {
    int i;
    listaN nodo = malloc(sizeof(*nodo));
    for(i=0; s1[i]!='\0'; i++)
        nodo->s[i] = s1[i];
    nodo->next = NULL;
    return nodo;
}
listaN AddLista(listaN lista, char *str) {
    listaN t;
    t = lista;
    if(lista==NULL)
        lista = creaNodo(str);
    else {
        while(t->next!=NULL)
            t = t->next;
        t->next = creaNodo(str);
    }
    return lista;
}
void StampaLista(listaN list) {
    listaN p = list;
    while(p!=NULL) {
        printf("%s", p->s);
        p = p->next;
    }
    return;
}