When to use missing data imputation in the data analysis problem?
Generally speaking you have two options:


impute the missing data
discard the missing data


Due to the fact that ML models perform better with more data, the former is usually preferred. However, you should keep in mind that the imputed data should not affect the distribution of the feature.

This is especially the case with features with a high percentage of missing values. If a feature has, let's say, 90% of its values missing, then by imputing it you are dictating what you want its distribution to be like (because all the data in that feature will be artificial). In this case it is better to discard the feature altogether.