First, this belongs to RGSS support.
Second, your script looks like it should work, given that Game_Actors class has this in it:
Other than that, I see no reason why it shouldn't work, but since it obviously doesn't, run some checks, like these (put each in a call script directly before yours is executed):
p $game_party.actors
p $game_party.actors[0]
p $game_party.actors[0].armor1_id
p $game_variables[11]
Depending on which one of those works, you know what level your error is at. If it's the first, chances are you didn't initialize $game_party yet, aka before title screen (where setting a $game_variable would be pointless anyway). Second print command means there's no actor[0] (which indeed is the first actor in your party though), which means you probably want to write this anyway:
$game_variables[11] = $game_party.actors[0].armor1_id if $game_party.actors[0].exist?
Third of those checks returning an error means that you can't access armor1_id, which would be strange since it should be readable (check for 'attr_reader :armor1_id' or 'attr_accessor :armor1_id' within Game_Actor, at the top of the script), or you have a typo.
Finally, if the last check returns an error, that indicates your $game_variables haven'T been initialized, aka before starting a new game.
I can't really help any farther than that, considering I haven'T used RMXP for years, but I think you should be fine with this checkup. You might also try setting a different variable ($game_temp.avatar_armor1_id or something - got to set that manually). Hope this works.