You only have 5 elements in those lists, but your loop iterates 6 times. You probably want {$n < 5}
or {$n < [llength $FilePathList]}
A note about style/efficiency: You don't need to test the existance twice
if {[ file exists $Path ]} {
$Button configure -background green
} else {
$Button configure -background red
}
or
$Button configure -background [expr {[ file exists $Path ] ? "green" : "red"}]