As usual with hooks this is issue of timing. - your init function is hooked to admin load process, which works fine for most things; - however in this specific case function is added to filter in constructor of `WP_Comments_List_Table` class, and object is created in `edit-comments.php` after admin loader had been processed. In my plugin for similar stuff I am removing it at `manage_edit-comments_columns` hook.