Innodb switch innodb_file_per_table to OFF I want to switch off the inno variable: innodb_file_per_table
I found that this affects only new tables, how to apply this change also to old tables? I tried:

Alter table (ALTER TABLE xxx ENGINES=innodb), but it doesn't work

I may dump everything and restore the entire DB but if possibile I want to avoid this procedure.
What version are you using?  What makes you say it "doesn't work"?

Please note that ibdata1 will not shrink during the process.  Only a dump and restore can fix that -- with a deletion of the ibdata1 file in the middle.  But note...  Unless you tweak the dump, the load will be all-or-none (file_per_table or not).

I recommend changing only "large" files (over a few MB) to file_per_table.  Why?  With "tiny" tables, there is overhead of opening the .ibd files that, though small, might cancel out the benefits of file_per_table.

The 80-20 rule says that 20% of your tables take 80% of the disk space.  So another way to pick "large" is to pick the largest 20% of the tables.

In the future (version 8.0), I am looking toward tablespace-per-database as minor recommendation for tiny tables.