I can explain why this is happening. When you call the Clone method a 'MagickFormat.Null' image is created with a transparent background and the pixels are copied from the source image to the destination image. And when you call ToByteArray an image with the format 'Null' is written. This is an internal Format that does nothing when you write it and just returns an empty array. So you should call the overload of ToByteArray that requires a MagickFormat.
In the next release of Magick.NET your example will throw an exception instead of just returning an empty array because I will use a different format when the clone is created.
In the next release of Magick.NET your example will throw an exception instead of just returning an empty array because I will use a different format when the clone is created.