Let me explain what actually happen with both of your code.
In first code qlikview took the ProjID field as number field and by default the number format is set to 0 decimal thus the decimals are trimmed.
In second case you said where ProjID = '00001.00' , as you have defined the 00001.00 in a single quote, qlikview considered this field as a string field and thus it shown you the field as it is.
Now if you want to have number with 2 decimal, you can get it this way.
num(ProjID,'#,##0.00') as ProjID,
SQL Select * from XYZ;
Hope its clear to you now.