You have a monostable multivibrator there.
Yes, if your output stays low, it triggers another pulse immediately once the timer is up due to the way the 555 works.
What you need is something that pulls up pin 2 once the ldr gets under a certain threshold, but then also detects if it's light again - in your solution, that'd most probably need a second LDR or some clever engineering. In any ways, it means extra parts.
Also, consider that an LDR is very slow to adjust, on the magnitude of seconds.
Aaalso, you have a battery source, and connect it directly to a resistive load. The higher your light sensitivity, the lower the resistance. Let's say, it's in daylight, and the LDR goes to around 300 Ohm. Total serial load R1+R2= 5kOhm. I=U/R=9V/5000Ohm = ~2mA.
A typical 9V battery has a capacity of around 600mAh at low discharge rates - so just your resistive load drains around 1% of the battery every three hours in daylight, or 4% a day assuming 12 hours of daylight. You'd need to change your battery every 25 days.
Then you also have the problem of the 555 using around 10mA even when it's doing absolutely nothing. That is five times the discharge rate. So, you're lucky to get 4-5 days out of it from a 9V battery.
As others have said, look into microcontrollers instead, they're more suited to the task. if it needs to be power efficient, let it go into deep sleep and make the sensor (a phototransistor is better suited to this task anyways) wake up the processor from deep sleep, let it do its thing, then go back to sleep.
Or I just had an idea for a creative solution:
Mini solar panel (off of some cheap import site or something) that charges a capacitor. Once solar panel voltage drops under threshold, turn on LED. LED drains capacitor, no power in system left. Self-contained, length of LED glowing depends on chosen capacitor, no battery required.