I see, even though the data point is zero the data label, showing category, is displayed.

Other than code you could try this.

Fix the Value axis to have a minimum of zero.
The instead of empty or zero values for those that are not to be displayed use a large negative value. Data points outside the plotarea do not display their data labels, usually.