Is it good to normalization/standardization data having large number of features with zeros
Any features that only have zeros (or any other constant value) in the training set, are not and cannot be useful for any ML model. You should discard them. The model cannot learn any information from them so it won't matter that the test data do have some non-zero values.
Generally, you should do normalization or standardization before feeding data for PCA/SVD, otherwise these methods will catch wrong patterns in the data (e.g. if features are on a different scale between each other).
Regarding the reason behind such a difference in the accuracy, I'm not sure. I guess it has to do with some peculiarities of the dataset.
I'm having data with around 60 features and most will be zeros most of the time in my training data only 2-3 cols may have values( to be precise its perf log data). however, my test data will have some values in some other columns. 
I've done normalization/standardization(tried both separately) and feed it to PCA/SVD(tried both separately). I used these features in to fit my model but, it is giving very inaccurate results.  
Whereas, if I skip normalization/standardization step and directly feed my data to PCA/SVD and then to the model, its giving accurate results(almost above 90% accuracy).
P.S.: I've to do anomaly detection so using Isolation Forest algo. 
why these results are varying?