Reproducing the problem
Well, that's interesting. The plot on the left shows the bar plot with a linear y-axis and the plot on the right is the same bar plot but with a log y-axis.
Cause of the problem
The 3D bar plots are constructed by surfaces stored in the output to bar3h. The horizontal walls extend from y=0 to the height of the each bar. When converting the y-axis to a log scale, log(0) returns -inf which cannot be plotted so the sections of the surfaces that include vertices at y=0 vanish. This does not affect the tops of each bar unless the tops are at y=0.
After constructing the bar plot, change values equal to or less than y=0. In the example below, they are changed to 1; log(1)=0.
zeroIdx = bh(i).YData == 0;
bh(i).YData(zeroIdx) = 1;
title(['Log y scale with',newline,'y=0 adjustment'])