A soma MD5 correta para um arquivo de um mibibyte composto inteiramente de zero bytes é b6d81b360a5672d80c27430f39153e2c (aquele que você viu para HTTPS), então algo está acontecendo com o seu wget HTTP. Eu estou querendo saber se talvez você tenha um proxy ou algo que esteja inserindo lixo na sua resposta, o que não acontece com sua solicitação HTTPS.
Veja o que vejo quando tento isso:
$> dd if=/dev/zero of=/tmp/test1m.test bs=1024 count=1024
1024+0 records in
1024+0 records out
1048576 bytes (1.0 MB) copied, 0.00866687 s, 121 MB/s
$> md5sum /tmp/test1m.test
b6d81b360a5672d80c27430f39153e2c /tmp/test1m.test
$> gsutil cp -a public-read /tmp/test1m.test gs://special-test/
Copying file:///tmp/test1m.test [Content-Type=application/octet-stream]...
Uploading gs://special-test/test1m.test: 1 MiB/1 MiB
$> wget http://storage.googleapis.com/yarbrough-test/test1m.test
$> md5sum test1m.test
b6d81b360a5672d80c27430f39153e2c test1m.test