May I know how Nifti1Image(data, affine, header) does exactly?

A valid NIfTI image should specify the distance between voxel centers as lixdim[1],[2],[3] for column, row and slice. If the original dataset lists these as 0, I would be extremely concerned and suggest you go back to your source data (e.g. how did you convert the HCP DICOM data to NIfTI) to ensure you have proper NIfTI files. In theory, there is some redundancy, as the SForm and QForm should also provide spatial information that could be used to recover the lixdim values. For example, if I inspect the header of sag_int_36sl_21.nii you can see that the row, column and slice spacing is reported in both lixdim as well as the storm (though you may need to do a vector by matrix multiply if your image was acquired obliquely to the scanner bore):

fslhd sag_int_36sl_21.nii
...
pixdim1		3.250000
pixdim2		3.250000
pixdim3		3.600000
...
sform_name	Scanner Anat
sform_code	1
sto_xyz:1	0.000000 0.000000 -3.600000 63.000000 
sto_xyz:2	-3.250000 0.000000 0.000000 140.319641 
sto_xyz:3	0.000000 3.250000 0.000000 -126.173706 
sto_xyz:4	0.000000 0.000000 0.000000 1.000000 
sform_xorient	Anterior-to-Posterior
sform_yorient	Inferior-to-Superior
sform_zorient	Right-to-Left

My own sense is to make sure you start with good data. If your original data does not report the pixdim, I would worry about other more insidious issues.

I would also be really careful about downsampling images. You will need to apply an algorithm that handles anti-aliasing. See the [notebook]((Subsample NIfTI - #3 by Chris_Rorden) created by @satra for details. Briefly, when you downsample images, low frequencies can masquerade as higher frequencies - the same reason why car wheel spokes can appear to rotate backwards on TV commercials.