@Volker suggests in the comments that some database drivers may be able to expand the slice for you. Any driver can handle the slice elements individually, however:
db.Query("SELECT id, name FROM users WHERE id IN (?, ?, ?, ?)", 1, 2, 3, 4)
Of course, you'd need to know exactly how many elements are going to be in the slice when you write that, which probably isn't the case. Generating the correct number of question marks is simple enough and gives you a general solution:
ints := []interface{}{1,2,3,4}
marks := strings.Repeat("?,", len(ints) - 1) + "?"
db.Query("SELECT id, name FROM users WHERE id IN (" + marks + ")", ints...)
If your slice might be empty, you'll have to handle that somehow.