First I suggest that you rename your constant "count" to "count_max" for example, to avoid confusion between the constant and the variable.
Then in VHDL you need to explicitely say that you want something done on each rising edge of the clock:
process (clk, enl)
variable count : natural range 0 to count;
begin
if rising_edge(clk) then
if (enl ='1') then
if (count = 48000000) then
count := 0 ;
second <= '1';
else
count := count+1;
second <= '0';
end if ;
second <= '0';
end if ;
end if;
end process;
And finally, you have a problem with the line I've put in red. It will be executed after the "if (count = 48000000)" block, so it will overwrite the value '1' you put when the counter reached its maximal value. Either delete this line, or put it in an else block to put 'second' to 0 when enl is 0 (which I assume is what you wanted to do in the first place)