Ok... lets have a look
in_ras0 = r"C:\Temp\.......\Yr2008TestRasterMosMean.tif"
in_ras1 = r"C:\Temp\.......\Yr2008TestRasterMean.tif"
r0 = arcpy.RasterToNumPyArray(in_ras0)
r1 = arcpy.RasterToNumPyArray(in_ras1)
r0m = np.ma.masked_where(r0<0.0, r0)
r1m = np.ma.masked_where(r1<0.0, r1)
r0m.shape, r1m.shape
((60, 120), (60, 120))
r0m.size, r1m.size
(7200, 7200)
r0m.count(), r1m.count()
(6274, 6274)
r0m.mean()
29.678883088938477
r1m.mean()
30.755663253108064
r0m.max(), r1m.max()
(1615.9902, 1670.0612)
r0m.min(), r1m.min()
(0.00056408811, 0.00051229505)
so the shapes, size and count of the two arrays/rasters are the same interms of the values given.
Which suggests that if the results were the result of processing then something is 'off' in the stack or the processing is different in the two methods.
The float32 dtype doesn't break anything.
I will let you ponder and suggest anything else for me to look at