You can write kernels in Go, it even used to ship with a bare metal runtime and several people wrote kernels using it.
You cannot easily write device drivers for existing operating systems in Go because the existing operating systems provide a particular environment unsuited for Go and expect certain constraints from the device drivers themselves, constraints which Go breaks. In principle, it could be made to work.