For one thing changing the width is not possible either in simulation or in hardware a bus is a fixed size vector of bits that can't be modified during run time. The width is defined and fixed at elaboration.
So instead of asking how to implement something you came up with that can't be done, why don't you instead state what your requirements are and then ask how it could be done.
You could send the data through a state machine, when you see a byte of zero's then you could EITHER switch the mux & essentially drop the data OR just have an enable pin for data valid