### Godot version

4.2

### System information

Godot v4.2.stable - Windows 10.0.19045 - Vulkan (Mobile) - dedicated AMD Radeon RX 6700 XT (Advanced Micro Devices, Inc.; 31.0.21001.45002) - AMD Ryzen 5 3600 6-Core Processor (12 Threads)

### Issue description

Tiles with light occluders still show shadows, when replacing them by code (set_cell) with a not occluding tile.
This does not happen when they are replaced with an empty cell (cell_id = -1) or erase_cell.

### Steps to reproduce

Make a new project with a Tilemap2D and a PointLight2D
Make 2 Tiles: One with an occluder and one without
Make the tiles placed by code.
Replace an occluding tile with a non occluding

### Minimal reproduction project

[TestForTilemap.zip](https://github.com/godotengine/godot/files/13539067/TestForTilemap.zip)

(source_id != TileSet::INVALID_SOURCE || atlas_coords != TileSetSource::INVALID_ATLAS_COORDS || alternative_tile != TileSetSource::INVALID_TILE_ALTERNATIVE)) {
		source_id = TileSet::INVALID_SOURCE;
		atlas_coords = TileSetSource::INVALID_ATLAS_COORDS;
		alternative_tile = TileSetSource::INVALID_TILE_ALTERNATIVE;
	}
	if (!E) {
		if (source_id == TileSet::INVALID_SOURCE) {
			return; 
		}
		
		CellData new_cell_data;
		new_cell_data.coords = pk;
		E = tile_map.insert(pk, new_cell_data);
	} else {
		if (E->value.cell.source_id == source_id && E->value.cell.get_atlas_coords() == atlas_coords && E->value.cell.alternative_tile == alternative_tile) {
			return; 
		}
	}
	TileMapCell &c = E->value.cell;
	c.source_id = source_id;
	c.set_atlas_coords(atlas_coords);
	c.alternative_tile = alternative_tile;
	
	if (!E->value.dirty_list_element.in_list()) {
		dirty.cell_list.add(&(E->value.dirty_list_element));
	}
	tile_map_node->queue_internal_update();
	used_rect_cache_dirty = true;
}
void TileMapLayer::erase_cell(const Vector2i &p_coords) {