The reason your first two queries fail to use the default value is because you explicitly set a value there. A default value is not used to replace a null value or empty string - it is there to put in a value when you don't supply one (this is not the same as explicitly choosing a null value).
The failure in your third example is because the
INSERT
expects three values and you only supply two. In cases like this, you have to set the columns you are expecting to insert into yourself like this
insert into persons1(emp_id, emp_name)
values (213, 'John')
Now, when you run that query, the database engine sees that you haven't supplied a value for Emp_City, so it will apply the default value of Bangalore.