Ok, I made this discovery...
In the url in httpd-ack for dumping the last audio track there's a parameter that can be modified to force the daemon to dump the entire track including the pregap
this is the original url
http://192.168.1.253/track04.raw?ipbintoc0_session02_p4096_cdxa0_sector_size2352_gap150_dma1_sector_read16_sub0_abort1_retry5
this is the modified url
http://192.168.1.253/track04.raw?ipbintoc0_session02_p4096_cdxa0_sector_size2352_gap0_dma1_sector_read16_sub0_abort1_retry5
This way the resulting last audio track contains the pregap for the last data track appended to its end.
Analyzing the data in this last 150 sectors, I found that indeed they are empty data sectors, that it's, sectors with no data, just the sectors with the appropriate control fields (Sync, header, EDC, etc), but there's something different in every disc, the first few sectors (5-30 sectors) are shifted by the offset that appear on the audio tracks and the data is not zeros, it's garbage like the one that appears scrambled while calculating disc offsets in ISOBuster sector viewer. Also, I cannot get the same garbage data by reading the track again, if I read the track again, the garbage appear on the same place, but with differente numbers, after the garbage data ends, the zero data sectors appear exactly in the same position with the same control fields every time.
By example, dumping track 20 of Sega Rally, it showed 5 sectors or garbage data in the last data track pregap, after that 145 secotrs were consistent if dumped over and over again.
With Slave Zero, it showed 29 sectors with corrupted info, again with every read, the garbage changed, the remaining 121 sectors of the pregap were the same.
If this pregap it's added to the begging of the last data track, the gdi adjusted properly using the proper values for the sizes of the audio track made the game playable on nullDC.
Also, I made an experiment, if I generate the pregap using zeros, append it to the last data track at the beginning and then fix the sectors using CDMage, the sectors that stayed consistent on the dumped pregaps are the same, that's mean the 145 sectors for Sega Rally and the 121 sector of Slave Zero match their values with the corresponding sectors generated and rebuilded with CDMage.
So, I think that the pregap, it's in fact just zero data in data form1 sectors, that it can be generated, appended to the beginning of the last data track, fixed or rebuilded with CDMage.
What do you think?