I think the problem is that both "gamemode survival" and "gamemode survival @s" don't identify the player whose gamemode you're trying to set. Both commands would apply to the player issuing the command, but when executed by a command block there is no player executing the command. Try using @p instead of @s. That will apply the command to the closest player. Or, if you want it to apply to yourself or some specific player, replace @s with the player's gamertag.
I think the problem is that both "gamemode survival" and "gamemode survival @s" don't identify the player whose gamemode you're trying to set. Both commands would apply to the player issuing the command, but when executed by a command block there is no player executing the command. Try using @p instead of @s. That will apply the command to the closest player. Or, if you want it to apply to yourself or some specific player, replace @s with the player's gamertag.