You should try formatting your queries so they are easier to read and you should use table aliasing so you don't have all those ".$VPtb1." bits in there:
INSERT INTO ".$MFTbl." (NAV_PN, SOS, UC, DESCRIPTION, VEND, VENDNAME, LEADTIME, TTL_DMD, LINES_LAST_WEEK, SYS_PCNT_FILL, HOME_PCNT_FILL)
SELECT t.NAV_PN, t.SOS, t.UC, t.DESCR, t.VENDOR, t.SUPNAME, t.LTD, t.PR12, t.TL, t.TPF, t.HPF
FROM ".$VPTbl." t
WHERE (
t.NAV_PN NOT IN (SELECT NAV_PN FROM ".$MFTbl."))
AND (t.MAXXIND = 'X')";
Not sure what you mean by "have any data in the table". Which table are you talking about? $VPtbl or $MFTbl?
$VPtbl is your source for this insert/select. If it is empty, then you won't be inserting any records because your SELECT FROM $VPtbl is going to return nothing.