Making predictions with missing numeric data
2 Questions.

Yes there are certain algos that deal with it internally. For example, lightGBM will ignore missing values during a split, then allocate them to whichever side reduces the loss the most. Check section 3.2 here Or Catboost for example also

Try to save/impute information as much as possible, if there is just too much missing values (30%+) than just drop the column. You will do more harm injecting the noise while imputing. (NOTE 30% is approximation based on experience, some datasets require less or more)