Nesse exercício, ao invés de setar cada variável independente passado ao método scan para depois setar em cada campo do struct, conforme feito no vídeo, é muito menos verboso no scan já passar o ponteiro para cada campo do struct Produto.
var listaProdutos []Produto
for registrosDeProdutos.Next() {
produto := Produto{}
erro := registrosDeProdutos.Scan(&produto.Id, &produto.Nome, &produto.Descricao, &produto.Preco, &produto.Quantidade)
if erro != nil {
return nil, erro
}
listaProdutos = append(listaProdutos, produto)
}