Does sqlite support any kind of IF(condition) statement in a select

See the case expression.

A CASE expression serves a role similar to IF-THEN-ELSE in other programming languages.

For your example

select case when length(a) > 4 then a else '' end as b
from foo

You can use case for that:

select case when length(a)>4 then a else ' ' end from foo;

Since version 3.32.0 you can use iif(X,Y,Z):

select iif( length( a ) > 4 , a , ' ') as b
from foo

From the codumentation:

The iif(X,Y,Z) function is logically equivalent to and generates the same bytecode as the CASE expression "CASE WHEN X THEN Y ELSE Z END".