Of course the icon is displayed only if the package ships a .desktop file.

I have tested this on KDE Plasma. It should work on other desktop environments too. It is not implementation specific.

Run the following manually or put it in your ~/.bashrc

export XDG_DATA_DIRS=~/.local/share/:~/.nix-profile/share:/usr/share
ln -s ~/.nix-profile/share/applications/*.desktop ~/.local/share/applications/

Now log out and log back in. Or if you are on KDE Plasma, you can run kbuildsycoca4 to rebuild the application launcher.