Du alloziierst Speicher, um einen Zeiger auf ein Objekt zu halten. Das Objekt selbst(die TStringList) wird gar nicht erzeugt. DA ist der Fehler.
Delphi-Quellcode:
var
_Param: PParam;
GetMem(_Param, SizeOf(TParam));
_Param^.Stringlist := TStringList.Create; // <---------------
_thread_handle := BeginThread(nil,
0,
Addr(ThreadFunction),
_Param,
0,
id);