That may sounds strange, but as matter of fact: ssh eats your loop arguments here. This specific implementation of a loop does not work with an ssh-command involved. Use a method like this instead:
for line in $(cat "$1"); do
echo "Text read from file: $line"
ssh user1@$line "df -h; kstat cpu_info|grep core_id|sort -u|wc -l"
done
This way the whole arguments are read at the begin of the loop and ssh is prevented from slurping up whole stdin.