Note that I can only speak about the routine that I practice myself.
Now I want to create another apps.
Close current project (save if asked/required). In the project dialog, create a new project (don't forget to choose the type of application that you wish to create).
When I create a new apps and notice it save in same folder.
Directly after creating a new project, project, save (or save as). A requester will ask where you want to store the project. I usually create a new directory (one directory per project) and save all the files that Lazarus asks for to save in that (single) directory).
Do this before doing anything else. If you add units later and close your project (or want to build) Lazarus will ask to save the new unit and will save that to the last selected directory.
I am not sure what did I do wrong.
I can only guess but most issues/confusion seem to originate from the default folder that Lazarus uses. It is somewhere (never tried to look where) and will be used as long as you don't change the directory for another project (see my earlier steps). So, you could end up with all your projects into a single directory in case you never bothered to change it (hence the suggestion to do a forced save or save-as directly after you created the project).
I want to have one folder for all apps but subfolder for each apps.
As per suggestion made above. Create a project and directly save/save as, navigate to the correct folder, create a new folder in case required and save each file Lazarus ask for to save into that directory).
I would like to open lazarus and it gives me list of program that I have been working on it. I know we can click Open recently. Sometime it works and other time not working.
The feature of a list with all the programs you worked on is not available. You could consider a feature request in the bug-tracker for a feature like that. I am not aware there currently exist a project manager plugin (other than project groups but that serves another purpose).