Devi usare bindValue , non bindParam
bindParam prende una variabile per riferimento e non inserisce un valore al momento della chiamata a bindParam . L'ho trovato in un commento sui documenti PHP:
bindValue(':param', null, PDO::PARAM_INT);
PS Potresti essere tentato di farlo bindValue(':param', null, PDO::PARAM_NULL); ma non ha funzionato per tutti (grazie a Will Shaver per la segnalazione.)