new している意味がよく分からないけど、予め変数を割り当ててしまえば良いような?

rows, err := db.Query("select id, first_name, last_name from users")
:
var (
id int
firstName, lastName string
)
rows.Next()
err = rows.Scan(&id, &firstName, &lastName)
: