What is the value present at the first address of flash memory of stm32 for every firmware?
Every firmware of Stm32 microcontrollers, the first value is starting with 0x2XXXXXXX, while working with custom bootloaders, I found that this is an address on SRAM

As documented in the Technical Reference Manual for any of the utilized ARM Cortex M-whatever cores, this is the initial address of the stack pointer.
When the chip performs an actual reset, this address is loaded into the stack pointer by the reset logic.
Traditionally this is at the top of RAM, or maybe slightly lower if you chose to reserve any addresses there for passing flags across soft reboots or similar.  In a gcc-style toolchain it is generally designated in the linker script and inserted by the linker in place of symbols left in code by earlier stages of compilation.

1)What is actually present at this address of SRAM?

Hopefully nothing that anyone cares about.  The contents of the initial address, and a substantial (and not entirely determinant!) area below will soon be overwritten by ordinary operations of the stack.

2)In custom bootloaders What is the significance of setting the MSP to this address on SRAM, before calling the reset handler of the user-application?

Essentially, the bootloader would be simulating what the hardware would do if directly booting using that vector block as the actual vector block.  While technically nothing in the hardware would ever look at the initial stack pointer value in a vector block not in effect at reset, reading this with software and acting as the hardware would gives the target firmware much the flexibility it would have if it had been booted directly - provided of course that it hasn't been linked to the bootloader's region, and doesn't overwrite any RAM (or RTC registers) which the bootloader might be using as flags for a soft-restart to enter the target firmware in a freshly restarted case with peripheral state uncorrupted by the bootloader's usage.