Musisz użyć bindValue , a nie bindParam
bindParam pobiera zmienną przez odwołanie i nie pobiera wartości w momencie wywołania bindParam . Znalazłem to w komentarzu do dokumentacji PHP:
bindValue(':param', null, PDO::PARAM_INT);
PS Możesz ulec pokusie, aby to zrobić bindValue(':param', null, PDO::PARAM_NULL); ale to nie zadziałało dla wszystkich (dziękuję Willowi Shaverowi za zgłoszenie).