Understanding how relationship sides works
0- CASCADE means to 'replicate' the changes that happens on the 'master' table to the 'details' tables. For simplicity, assume the relation (country, city). Each city[detail] belongs to a country[master], or each city is a child of a country. With cascade, if you delete a country, all cities belong to that country will be deleted. 

In your case, general_orders is the master table (call it the parent). When you delete an order, the referenced rows from natural_person and legal_person will be deleted. 

1- No, not all records will be deleted. Only the referenced one will be. 

2- Nothing will happen to general_order table. (If you delete a city, the country will still be there)

Regarding the design: It depends on your model, but I feel that the design is not right. i.e. I think each order should belong to a 'person', and this person's type is either natural or legal. So, I would have:

grnaral_order(id, ..., person_id, ...)
person(id, type[legal, natural])
natural_person(id, name, ...)
legal_person(id, company_name...)


This is one way, but not necessarily the best one, because it totally depends on your analysis