The latter alternative is right, tileindex items are used as reference for locating the underlying raster files.
If you want that raster imagery is shown only within the state boundaries you have two alternatives for configuring that with your mapfile - layer https://mapserver.org/uk/mapfile/layer.html.
1) Create a very big polygon that has your state area as a hole and make a vector layer from that. Place it below your raster layer in the mapfile which means that it will be rendered later, so it will painted on top of the raster tileindex layer. Finally make the raster layer to require that the state boundary layer must also be rendered by adding REQUIRES "[boundary_layer]" into your mapfile. I am remembering that the syntax takes the plain layer name without square brackets and they are used just as placeholders in the documentation.
2) Use mask layer. By the documentation it seems that for the mask you must make a vector layer from the state polygon itself, not from the difference of the rest of the World and the state polygon as above. There is a usage example in https://mapserver.org/development/rfc/ms-rfc-79.html#rfc79.
LAYER
NAME "parcels"
TYPE POLYGON
STATUS OFF
DATA "the_geom from parcels where clientid='%token%'"
CLASS
STYLE
COLOR 0 0 0
END
END
END
LAYER
NAME "meteo"
STATUS ON
TYPE RASTER
DATA "raster.tif"
MASK "parcels"
END
Modify the example to use your state polygon as the mask layer and have a try.
Please inform if it works because I have never tried it myself.