You should use while, not for. The way to avoid commands swallowing standard input in such a loop is simply to use another file descriptor:
while read -u 9 server; do
ssh $server "uname -a"
done 9< /home/kenny/list_of_servers.txt
For more information, help [r]ead (really) and another article explaining why.