В первом a := []byte("H")
вы вводите строку "H"
в байтовый массив.
Во втором a := []byte{"H"}
вы определяете байтовый массив и присваиваете «H» в качестве первого значения, что недопустимо.
Вы можете сравнить второй с определением массива строк:
s := []string{"hello","world",".."} // works
f := []string{1,2,4} // fails because the datatype is wrong