You don't have any event listeners inside of your code. When the game first runs, it'll go through your code and see the if, and say "okay, is checkpoint1 transparent?" Then, it'll see that it's not and pass on by. Then, if it does become transparent, it won't notice, because it's not checking. What you have to do is attach an event listener to the code like so:
game.Workspace.checkpoint1.Changed:connect(function()
if game.Workspace.checkpoint1.Transparency == 1 then
script.Parent.GUI1.Visible = false
end
end)
Some other errors I saw in your code:
What's the purpose of line 1? It's not doing anything.
Whenever you're checking values in if statements, you use two equal signs (==)
Because:
= means equals (in other words, you're setting the value)
== means is equal to (in other words, you're checking if this is equal to that.)
You need to have an end on that if statement.