When you are creating a coverpoint for a single bit, you will get two bins, one for the value of 0 and one for the value of 1. These bins are created automatically, hence the auto[0] and auto[1] names.
What do you really want to cover? That each individual bit is set? Isn’t set? Transitions?
You can check individual bit values using wildcard bins:
// The count of bin g12_15 is incremented when the sampled variable is between 12 and 15
wildcard bins g12_15 = { 4'b11?? };